Docker 从入门到实践系列四 - Docker 容器编排利器 Docker Compose

本文介绍了如何使用 Docker Compose 进行容器编排,包括前台和后台启动容器,详细解析了 `docker-compose.yml` 文件的各个配置项,如 version、services、image、build、ports、volumes 等,提供了实例演示如何基于 Dockerfile 构建新镜像。通过 Docker Compose,可以轻松管理和部署多容器应用。
摘要由CSDN通过智能技术生成

使用 docker-compose up 创建并启动所有服务。这个简单的案例中就只有一个 Nginx 后续我们会来一些复杂的练习:

前台启动

docker-compose up

后台启动

docker-compose up -d

浏览器访问自己服务器的ip地址:http://192.168.138.8/ 结果如下:

使用 docker-compose down 可以停止并删除容器、网络。

version

描述 Compose 文件的版本信息,当前最新版本为 3.8,对应的 Docker 版本为 19.03.0+。关于每个版本的详细信息请参考:https://docs.docker.com/compose/compose-file/compose-versioning/

以下为 Compose 文件的版本信息所对应的 Docker 版本。

| Compose file format | Docker Engine release |

| :-- | :-- |

| 3.8 | 19.03.0+ |

| 3.7 | 18.06.0+ |

| 3.6 | 18.02.0+ |

| 3.5 | 17.12.0+ |

| 3.4 | 17.09.0+ |

| 3.3 | 17.06.0+ |

| 3.2 | 17.04.0+ |

| 3.1 | 1.13.1+ |

| 3.0 | 1.13.0+ |

| 2.4 | 17.12.0+ |

| 2.3 | 17.06.0+ |

| 2.2 | 1.13.0+ |

| 2.1 | 1.12.0+ |

| 2.0 | 1.10.0+ |

| 1.0 | 1.9.1.+ |

services

刚才我们提到 docker-compose.yml 文件中包含很多下级配置项,下面带大家把一些常用的配置项详细了解一下,先从顶级配置 services 开始。

services 用来定义服务,可以多个,每个服务中定义了创建容器时所需的镜像、参数、依赖等,就像将命令行参数传递给 docker run 一样。同样,网络和数据卷的定义也是一样的。

比如,之前我们通过 docker run 命令构建一个 MySQL 应用容器的命令如下:

docker run -d --name mysql8 -p 3306:3306 -v /opt/data/docker_mysql/conf:/etc/mysql/conf.d -v /opt/data/docker_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8

使用 docker-compose.yml 以后则可以这样定义:

描述 Compose 文件的版本信息

version: “3.8”

定义服务,可以多个

services:

mysql: # 服务名称

image: mysql:8 # 创建容器时所需的镜像

container_name: mysql8 # 容器名称,默认为"工程名称_服务条目名称_序号"

ports: # 宿主机与容器的端口映射关系

  • “3306:3306” # 左边宿主机端口:右边容器端口

environment: # 创建容器时所需的环境变量

MYSQL_ROOT_PASSWORD: root

volumes:

  • “/opt/data/docker_mysql/conf:/etc/mysql/conf.d”

  • “/opt/data/docker_mysql/data:/var/lib/mysql”

然后通过 dokcer-compose 相关命令即可完成容器的创建,停止或删除等一系列操作。

image

指定创建容器时所需的镜像名称标签或者镜像 ID。如果镜像在本地不存在,会去远程拉取。

services:

web:

image: hello-world

build

除了可以基于指定的镜像构建容器,还可以基于 Dockerfile 文件构建,在使用 up 命令时会执行构建任务。

通过 build 配置项可以指定 Dockerfile 所在文件夹的路径。Compose 将会利用 Dockerfile 自动构建镜像,然后使用镜像启动服务容器。

build 配置项可以使用绝对路径,也可以使用相对路径。

绝对路径,在该路径下基于名称为 Dockerfile 的文件构建镜像

/usr/local/docker-centos

相对路径,相对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值