Compose 是一个定义和管理多容器的工具,使用Python语言编写,使用Compose配置文件描述多个容器应用的架构,比如什么镜像,数据卷,网络,映射端口等;然后一条命令管理所有服务,比如启动,停止,重启等。
YAML文件格式及编写注意事项
YAML是一种标记语言很直观的数据序列化格式,可读性高,类似于XML数据描述语言,语法比XML简单的很多。
YAML数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号括起来,hash用花括号括起来。
YAML文件格式注意事项:
1.不支持制表符tab键缩进,需要使用空格缩进
2.通常开头缩进2个空格
3.字符后缩进1个空格,如冒号,逗号,横杆
4.用井号注释
5.如果包含特殊字符用单引号引起来
6.布尔值(true,false,yes,no,on,off) 必须用引号括起来,这样分析器会将他们解释为字符串
下载 docker-compose
mkdir /home/tools -p
# docker compose 1.18.0 的 SHA-256 sum 值:
# b2f2c3834107f526b1d9cc8d8e0bdd132c6f1495b036a32cbc61b5288d2e2a01
cd /home/tools
curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sha256sum /usr/local/bin/docker-compose
# 与上面的 SHA-256 sum 值进行比较确认命令是否完整
# 赋予执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本号:
docker-compose --version
常用命名
# 运行,默认使用当前目录下的 docker-compose.yml
docker-compose up
# 如果不使用默认的 yml ,可以使用 -f 指定, -d 在后台运行
docker-compose -f test.yml up -d
# 查看容器运行状态,只支持当前目录下的 docker-compose.yml 文件
docker-compose ps
# 重启所有容器,只支持当前目录下的 docker-compose.yml 文件
docker-compose restart
# 重启App1
docker-compose restart App1
# 停止所有容器,只支持当前目录下的 docker-compose.yml 文件
docker-compose stop
# 停止App1
docker-compose stop App1
举个例子:
cat docker-compose.yml
version: '3.4'
services:
flash-sale: # 注意这里不能使用 _ 线命名,在Java中需转义
image: ${IMAGE_NAME} # image 从 当前文件夹中的 .env 文件中获取
env_file:
- .env
environment:
- JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006 #启动调试端口
ports:
- 5006:5006 #暴露调试端口
extra_hosts:
- "www.klvchen.com:192.168.0.66" # 添加 hosts 记录
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"]
interval: 1m30s
timeout: 10s
retries: 3
start_period: 30s
networks:
- backend
networks:
backend:
external:
name: backend
-----
cat .env
IMAGE_NAME=flash-sale:2018-07-31_21-33
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx