Docker Compose 是一个 Docker 官方提供的工具,用于定义和运行多个 Docker 容器的应用。它可以通过 YAML 文件来声明一个应用的各个服务之间的依赖关系、网络设置、挂载卷等参数,在一条命令下启动、停止和重建整个应用。
Docker Compose 的主要特点包括:
- 简单易用:使用 YAML 文件定义服务之间的依赖关系和配置参数,一条命令即可启动整个应用;
自动化部署:定义好的 Docker Compose 文件可以在不同的环境中进行部署和扩展,并支持回滚操作; - 应用分离:不同的服务可以独立编排和部署,各自管理自己的状态和数据,提高应用的可维护性和可扩展性;
- 可视化管理:可以通过工具如 Portainer 等可视化平台来管理和监控 Docker Compose 部署的服务。
Docker Compose 的使用可以大大简化复杂应用的管理和部署,并提高开发和运维效率。
1、安装依赖
docker 依赖于系统的一些必要的工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum makecache fast
3、安装 docker-ce
#查看可以安装的docker版本
yum list docker-ce --showduplicates
#选择安装需要的版本,直接安装最新版,可以执行 yum -y install docker-ce
yum install --setopt=obsoletes=0 docker-ce-19.03.13-3.el7 -y
4、启动服务
#通过systemctl启动服务
systemctl start docker
#通过systemctl设置开机启动
systemctl enable docker
5、查看安装版本
启动服务使用 docker version 查看一下当前的版本:
docker version
6、 配置镜像加速
通过修改 daemon 配置文件/etc/docker/daemon.json 加速,如果使用 k8s,这里一定要设置 “exec-opts”: [“native.cgroupdriver=systemd”]。 “insecure-registries” : [“172.16.20.175”]配置是可以通过 http 从我们的 harbor 上拉取数据。
vi /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"registry-mirrors": ["https://eiov0s1n.mirror.aliyuncs.com"],
"insecure-registries" : ["172.16.20.175"]
}
sudo systemctl daemon-reload && sudo systemctl restart docker
7、安装 docker-compose
如果网速太慢,可以直接到 https://github.com/docker/compose/releases 选择对应的版本进行下载,然后上传到服务器/usr/local/bin/目录。
sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
注意:(非必须设置)开启 Docker 远程访问 (这里不是必须开启的,生产环境不要开启,开启之后,可以在开发环境直连 docker)
vi /lib/systemd/system/docker.service
修改 ExecStart,添加 -H tcp://0.0.0.0:2375
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
修改后执行以下命令:
systemctl daemon-reload && service docker restart
测试是否能够连得上:
curl http://localhost:2375/version
使用Docker Compose的优势如下:
-
简化部署过程:Docker Compose允许您在一个文件中定义和部署多个容器,这使得应用程序和其依赖项之间的交互更加简单,从而简化了部署过程。
-
提高可维护性:Docker Compose使得配置和管理容器非常容易,它允许您在一个文件中定义容器和它们之间的相互关系。这使得容器的配置、管理和升级都更加方便,并提高了整个应用程序的可维护性。
-
节省时间和资源:Docker Compose允许您在本地开发环境中创建多个容器,并在本地环境中测试它们。这在开发和调试过程中节省了很多时间和资源。
-
重现生产环境:使用Docker Compose可以确保在本地环境和生成环境之间使用相同的镜像和配置文件,并且可以为您的应用程序提供一个标准化的部署方法。
-
易于扩展:Docker Compose允许您使用多个容器来处理不同的任务。例如,您可以将数据库和Web服务器分离到不同的容器中,以便更好地管理它们,并且容器可以在需要时轻松地进行扩展。