Docker--Compose介绍(三)

2022-11-19 09:20:06 浏览数 (1)

Docker Compose介绍

Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。

Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。

docker-compose github

https://github.com/docker/compose

安装docker-compose

(1)下载文件

代码语言:javascript复制
wget https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-linux-x86_64

(2)移动文件

代码语言:javascript复制
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

(3)赋予可执行权限

代码语言:javascript复制
chmod  x /usr/local/bin/docker-compose

(4)创建软链

代码语言:javascript复制
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

(5)查看版本

代码语言:javascript复制
docker-compose --version

创建docker-compose文件

docker-compose是docker容器的编排工具

代码语言:javascript复制
vim docker-compose.yml   //编写.yml文件,写入以下内容
version: "3"                               //指定语法的格式的版本
services:                                  //定义服务
  nginx:                                       //服务的名称
    container_name: web-nginx    //容器的名称
    image: nginx-202206                  //所使用的镜像
    restart: always                      //随docker服务的启动而启动
    ports:
      - 9090:80                                 //映射的端口
    volumes:
      - /root/compose/webserver:/usr/share/nginx/html  
      //本地与容器挂载的目录

运行 docker-compose

代码语言:javascript复制
docker-compose up -d

停止docker-compose

代码语言:javascript复制
docker-compose stop

使用"-f"选项来指定yml文件启动文件中定义的容器

代码语言:javascript复制
docker-compose -f /mnt/docker-compose.yml  up -d

查看运行的容器

代码语言:javascript复制
docker ps

创建测试网页

代码语言:javascript复制
echo "compose" >/root/compose/webserver/index.html

访问测试

代码语言:javascript复制
[root@localhost webserver]# curl  127.0.0.1:9090
compose

compose dockerfile构建镜像

(1)创建docker-compose 文件

代码语言:javascript复制
[root@localhost mnt]# cat docker-compose.yml 
version: "3"
services:
  nginx:
    build: .
    container_name: webnginx
    image: nginx-20220620 
    restart: always                     
    ports:
      - 9090:80             
    volumes:
      - /root/compose/webserver:/usr/share/nginx/html

(2)创建Dockerfile 文件

代码语言:javascript复制
[root@localhost mnt]# cat Dockerfile 
FROM  nginx-202206
COPY ./hello.html /usr/share/nginx/html

(3)docker-compose 结合 dockerfile文件生成镜像

代码语言:javascript复制
[root@localhost mnt]# docker-compose build

(4)运行docker-compose

代码语言:javascript复制
[root@localhost mnt]#  docker-compose up -d

(5)查看运行容器

代码语言:javascript复制
[root@localhost mnt]# docker-compose  ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
webnginx            "/docker-entrypoint.…"   nginx               running             0.0.0.0:9090->80/tcp, :::9090->80/tcp

(6)访问测试

代码语言:javascript复制
[root@localhost webserver]# echo  "compose dockerfile" > index.html 
[root@localhost webserver]# pwd
/root/compose/webserver
[root@localhost webserver]# curl  192.168.100.95:9090
compose dockerfile

Docker Compose 常用命令

docker-compose up -d 构建、创建、启动相关容器;-d表示在后台运行

docker-compose stop 停止所有相关容器

docker-compose ps 列出所有容器信息

docker-compose logs 查看服务日志输出

docker-compose build 构建或者重新构建服务

docker-compose start webnginx 启动指定服务已存在的容器

docker-compose stop webnginx 停止已运行的服务的容器

docker-compose rm webnginx 删除指定服务的容器

docker-compose kill webnginx 发送 SIGKILL 信号来停止指定服务的容器

docker-compose run webnginx bash 在容器服务上执行一个命令

Docker Compose官方文档

https://docs.docker.com/compose/reference/

0 人点赞