这里我们继续来学习docker的下一个知识点,docker的开源矿建docker-compose。
一:什么是docker-compose
docker-compose项目是docker官方的开源项目, 负责实现对docker容器集群的快速编排。
简单讲就是:一个使用Docker容器的微服务项目,通常由多个容器应用组成。那么部署时如何快速启动各个微服务呢,一个个手动启动?假如有上百个微服务呢,显然不现实,那么使用Docker Compose编排工具便可快速启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
二:安装docker-compose
1:windows系统安装。
如果你安装了windows桌面版的docker,那么docker-compose就已经默认安装完成了
2:linux安装
首先放一下docker的文档:docs.docker.com/compose/ins…
下面我简单记录一下docker-compose安装步骤
(1):更新yum仓库
yum update
(2):安装docker-compose
yum install docker-compose-plugin
(3):通过检查版本来验证 Docker Compose 是否正确安装。
docker compose version
输出:
Docker Compose version v2.27.0
证明安装成功!
docker官方还为我们提供了手动安装docker-compose的选项,官方不推荐,我这里也就不做演示了。有兴趣的同学可以参照一下官方文档。
Docker-compose是基于python开发的,如果你对python很熟悉,也是可以使用pip进行安装的,我这里就不做演示了,我不太喜欢python。
三:yml文件结构和版本关系
1:文件结构:
version:"3.8" # 这个版本是docker-compose的版本,不是随便写的(高版本已废弃)
services:#容器
servicename:#服务名字,这个名字也是内部bridge网络可以使用的DNS name
image:#镜像的名字
container_name: 容器名字(不推荐使用)
command:#可选,如果设置,则会覆盖默认镜像里的CMD命令
environment:#可选,相当于docker run里的--env
volumes:#可选,相当于docker run.里的-V
networks:#可选,相当于docker run.里的--network
ports:#可选,相当于docker run里的-p
servicename2:
volumes:#可选,相当于docker volume create
networks:#可选,相当于docker network create
2:自已编写一个docker-compose.yml文件
Docker-compose版本和docker的版本是相互对应的,我在官网中没有找到对应的版本对照。我这里放一份在百度中找到的。 (高版本的docker已经废弃了这个玩意,如果你还在使用低版本的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.+ |
使用命令查看docker版本
Docker –version
输出:
Docker version 26.1.3, build b72abbb
Docker-compose.yml,代码如下:
services:
web:
image: nginx:latest
ports:
- "8087:80"
my-wordpress:
image: wordpress:latest
ports:
- "8081:80"
四:运行docker-compose.yml文件
将上方创建的docker-compose.yml文件上传至服务器/usr/local/docker目录
在/usr/local/docker目录下运行
docker compose up
第一次构建时间可能比较长。
常用选项
· -d 或 --detach:在后台运行容器(分离模式)。
· --build:在启动容器之前重新构建镜像。
· --force-recreate:强制重新创建容器,即使配置没有变化。
· --remove-orphans:移除不在 docker-compose.yml 文件中的孤立容器。
使用命令查看当前正在运行的容器:
docker ps
五:docker compose命令
我们在终端可以运行docker compose命令来查看都有什么命令:
我们停止上方创建的两个容器:
在包含 docker-compose.yml 文件的目录中运行以下命令,
docker compose stop # 停止所有容器
docker compose stop <service_name> # 停止名字为xxxx的容器
使用docker compose ps来查看当前运行的容器
Stop命令中需要中的到的service name就是我上图中红框标注的
停止命令:
docker compose stop my-wordpress
以上大概就是Docker compose的基本内容。
有好的建议,请在下方输入你的评论。