在上一章节中,我们使用了参数的形式去指定数据库的账号密码,数据挂载,网络等内容,当容器非常多的时候,就会是命令越来越多,参数越多,越复杂,且不能很好地表达容器与容器之间的关系,本篇文章我们通过docker compose解决上述问题。
通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
1.使用 Dockerfile 定义应用程序的环境。
2.使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
3.最后,执行 docker-compose up 命令来启动并运行整个应用程序。
Compose安装
在linux中,我们可以使用以下命令进行安装:
#下载文件(下面二选一)
#github镜像,很慢
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#国内镜像
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#赋予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
#创建软连接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#查看是否验证成功
docker-compose --version
上述命令的1.24.1表示版本,可以根据需要进行替换。
使用nginx举例:
Dockerfile:
FROM centos:7
RUN yum -y install epel-release \
&&yum -y install nginx\
&&yum -y install net-tools
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
docker-compose.yml
version: '3.3'
services:
nginx:
ports:
- 7000:80
image: 'nginx:latest'
启动服务:
[root@iZ2ze7sn66bchxncut8rgsZ opt]# docker-compose up -d
Starting opt_nginx_1 ... done
[root@iZ2ze7sn66bchxncut8rgsZ opt]# docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------
opt_nginx_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:7000->80/tcp
更加具体的内容及操作命令请参考下面的文章:
https://www.runoob.com/docker/docker-compose.html
网友评论