Docker Compose 部署服务
Compose 是一个用户定义和运行多个容器的Docker应用程序。在Compose中你可以使用yaml 文件来配置你的应用服务。然后,只需要一个简单的命令,就可以创建并启动你配置的所有服务。
Compose 可以方便我们快捷且高效地管理容器的启动、停止、重启等操作。它类似于linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像、数据卷、网络模式、监听端口等信息。我们可以在一个compose文件中定义一个多容器的应用(如jumpserver),然后通过该compose来启动这个应用。
安装compose:
下载地址:https://github.com/docker/compose/releases
可以wget下来,但是速度非常慢,建议先用Windows下载后,传到centos上
[root@jinkai02 src]# wget https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64
[root@jinkai02 src]# du -sh docker-compose-Linux-x86_64
12M docker-compose-Linux-x86_64
[root@jinkai02 src]# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
[root@jinkai02 src]# chmod 755 !$
chmod 755 /usr/local/bin/docker-compose
[root@jinkai02 src]# docker-compose version
docker-compose version 1.27.4, build 40524192
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
Compose区分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+)。Version 2支持更多的指令。Version 1没有声明版本默认是"version 1"。Version 1将来会被弃用。
示例:
vim docker-compose.yml #写入下面内容,注意空格
version: "2" #使用 version 2 版本
services:
app1: #表示容器名字
image: centos_nginx #表示镜像名
ports:
- "8080:80" #指定映射端口
networks:
- "net1" #指定网络模式
volumes:
- /data/:/data #目录挂载,等同于前面讲过的-v选项
app2:
image: centos_with_net
networks:
- "net2"
volumes:
- /data/:/data1
entrypoint: tail -f /etc/passwd #防止容器运行完dockerfile停止
networks:
net1:
driver: bridge
net2:
driver: bridge
运行docker-compose:
[root@jinkai02 src]# docker-compose up -d //-d后台启动
Creating src_app1_1 ... done
Creating src_app2_1 ... done
[root@jinkai02 src]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
97c7e2132393 centos_with_net "tail -f /etc/passwd" 29 seconds ago Up 28 seconds src_app2_1
7e7a1f70bf27 centos_nginx "/bin/sh -c '/usr/lo…" 29 seconds ago Up 28 seconds 0.0.0.0:8080->80/tcp src_app1_1
[root@jinkai02 src]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------
src_app1_1 /bin/sh -c /usr/local/ngin ... Up 0.0.0.0:8080->80/tcp
src_app2_1 tail -f /etc/passwd Up
通过使用compose,我们可以很方便地管理容器的启动、停止、重启等操作。
docker-compose --help
docker-compose ps/down/up/stop/start/rm
关于docker-compose语法的参考文档 http://www.web3.xin/index/article/182.html