详解docker-compose.yml文件常用模版命令
作者:明日晴空
注:在编写docker-compose.yml文件时,所有的冒号(:)、短横线(-)后面都需要加一个空格。
1、command
覆盖容器启动后默认执行的命令
command: echo "hello"
2、container_name
指定容器名称。默认将会使用 项目名称_服务名称_序号 这样的格式
container_name: docker-web-container
3、configs
仅用于Swarm mode
4、deploy
仅用于Swarm mode
5、devices
指定设备映射关系
devices:
- "/dev/dir:/dev/dir"
6、depends_on
解决容器的依赖、启动先后,容器之间的通讯的问题。
7、links
连接到其他容器。注意:不推荐使用该指令,建议使用depends_on。
应该使用docker network,建立网络,而docker run --network来连接特定网络。
或者使用version: ‘2' 和更高版本的docker-compose.yml直接定义自定义网络并使用。
8、dns
自定义DNS服务器。可以是一个值,也可以是一个列表。
dns: 8.8.8.8
dns:
- 8.8.8.8
- 114.114.114.114
9、environment
设置环境变量。可以使用数组或字典两种格式。只给定名称的变量会自动获取运行Compose主机上对应变量的值,可以用来防止泄露不必要的数据。
environment:
MYSQL_ROOT_PASSWORD: 666666
10、expose
暴露端口,但不映射到宿主机,只被连接的服务访问。仅可以指定内部端口为参数。
11、extra_hosts
类似Docker中的–add-host参数,指定额外的host名称映射信息。会在启动后的服务容器中/etc/hosts文件中添加一个条目。如:8.8.8.8 googledns
12、healthcheck
通过命令检查容器是否健康运行
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 1m30s
timeout: 10s
retries: 3
13、image
指定为镜像名或镜像ID,如果镜像在本地不存在,Compose将会尝试拉取这个镜像
14、labels
为容器添加Docker元数据(metadata)信息。例如可以为容器添加辅助说明信息。
15、network_mode
设置网络模式。使用和docker run的–network参数一样的值。
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
16、networks
配置容器连接的网络
networks:
network-demo
17、ports
暴露端口信息,使用宿主端口:容器端口(HOST:CONTAINER)格式,或者仅仅指定容器的端口(宿主将会随机选择端)都可以。
ports:
- "80:80"
- "443:443"
- "8081:8081"
18、volumes
数据卷所挂载路径设置,可以设置宿主机路径,同时支持相对路径
volumes:
- ../Site:/data/www:rw
- ./nginx/conf.d:/etc/nginx/conf.d:ro
- ./nginx/cert:/etc/nginx/cert:ro
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/phpcgi.conf:/etc/nginx/phpcgi.conf:ro
- ./nginx/fastcgi.conf:/etc/nginx/fastcgi.conf:ro
- ./nginx/pathinfo.conf:/etc/nginx/pathinfo.conf:ro
- ../logs/nginx:/var/log/nginx
19、ulimits
指定容器的ulimits限制值。
例如,指定最大进程数为65535,指定文件句柄数为20000(软限制,应用可以随时修改,不能超过硬限制)和 40000(系统硬限制,只能root用户提高)
ulimits:
nproc: 65535
nofile:
soft: 20000
hard: 40000
20、entrypoint
指定服务容器启动后执行的入口文件
entrypoint: /code/entrypoint.sh
21、user
指定容器中运行应用的用户名
22、working_dir
指定容器中工作目录
working_dir: /data/www
23、domainname
指定容器中搜索域名
domainname: your_domain.com
24、hostname
指定容器中主机名
25、mac_address
指定容器中mac地址
mac_address: 01-02-22-0A-0B
26、privileged
允许容器中运行一些特权命令
privileged: true
27、restart
指定容器退出后的重启策略为始终重启。在生产环境中推荐配置为 always 或者 unless-stopped
restart: always
28、read_only
以只读模式挂载容器的root文件系统,意味着不能对容器内容进行修改
read_only: true
29、stdin_open
打开标准输入,可以接受外部输入
stdin_open: true
30、tty
模拟一个伪终端
tty: true
到此这篇关于docker-compose.yml文件常用模版命令的文章就介绍到这了,更多相关docker-compose.yml模版命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!