安装Docker Cpmpose
从 官方 GitHub Release 处直接下载编译好的二进制文件即可。
# 下载指令
curl -L https://github.com/docker/compose/releases/download/1.26.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 下载完成后没有执行权限, 添加执行权限
chmod +x /usr/local/bin/docker-compose
验证
# 查看版本指令
[root@worker ~]# docker-compose version
名字必须是docker-compose.yml
# python版本号
version: '3.0'
# 服务列表
services:
# 服务名 随便起,不重名就行
tomcat:
# 开机启动
restart: always
# 镜像名 (本地拥有的镜像或者公共仓库的镜像)
image: tomcat
# 容器名
container_name: tomcat
# 端口映射规则
ports:
- 8080:8080
# 数据卷配置,和端口规则一样 冒号左边是宿主机, 右边是容器
volumes:
# 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。
- ./webapps:/usr/local/tomcat/webapps.dist
# 环境变量
environment:
TZ: Asia/Shanghai
启动所有服务
docker-compose up -d
停止或启动容器
docker-compose [stop|start]
查看服务容器的输出
docker-compose logs
删除所有(停止状态的)服务容器。
–f, –force,强制直接删除,包括非停止状态的容器
-v,删除容器所挂载的数据卷
docker-compose rm
ports
ports:
- "80:80" # 绑定容器的80端口到主机的80端口
- "9000:80" # 绑定容器的80端口到主机的9000端口
- "443" # 绑定容器的443端口到主机的任意端口,容器启动时随机分配绑定的主机端口号
expose
expose:
- "3000"
- "8000"
network_mode
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"
secrets
version: "3.1"
services:
mysql:
image: mysql
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/my_secret
secrets:
- my_secret
secrets:
my_secret:
file: ./my_secret.txt
添加主机名的标签,会在/etc/hosts文件中添加一些记录。
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
启动后查看容器内部hosts:
162.242.195.82 somehost
50.31.209.229 otherhost
模板2
version: '2'
services:
web1:
image: nginx
ports:
- "6061:80"
container_name: "web1"
networks:
- dev
web2:
image: nginx
ports:
- "6062:80"
container_name: "web2"
networks:
- dev
- pro
web3:
image: nginx
ports:
- "6063:80"
container_name: "web3"
networks:
- pro
networks:
dev:
driver: bridge
pro:
driver: bridge