docker基础(12):l配置⽂件详解(2)18.ports
映射端⼝的标签。
使⽤HOST:CONTAINER格式或者只是指定容器的端⼝,宿主机会随机映射端⼝。
ports:
- "3000"
- "8000:8000"
- "49100:22"
- "127.0.0.1:8001:8001"
注意:当使⽤HOST:CONTAINER格式来映射端⼝时,如果你使⽤的容器端⼝⼩于60你可能会得到错误得结果,因为YAML将会解析xx:yy这种数字格式为60进制。所以建议采⽤字符串格式。
19.security_opt
为每个容器覆盖默认的标签。简单说来就是管理全部服务的标签。⽐如设置全部服务的user标签值为USER。
security_opt:
- label:user:USER
- label:role:ROLE
20.stop_signal
设置另⼀个信号来停⽌容器。在默认情况下使⽤的是SIGTERM停⽌容器。设置另⼀个信号可以使⽤stop_signal标签。
stop_signal: SIGUSR1
21.volumes
挂载⼀个⽬录或者⼀个已存在的数据卷容器,可以直接使⽤ [HOST:CONTAINER] 这样的格式,或者使⽤ [HOST:CONTAINER:ro] 这样的格式,后者对于容器来说,数据卷是只读的,这样可以有效保护宿主机的⽂件系统。
Compose的数据卷指定路径可以是相对路径,使⽤ . 或者 … 来指定相对⽬录。
数据卷的格式可以是下⾯多种形式:
volumes:
// 只是指定⼀个路径,Docker 会⾃动在创建⼀个数据卷(这个路径是容器内部的)。
- /var/lib/mysql
// 使⽤绝对路径挂载数据卷
- /opt/data:/var/lib/mysql
// 以 Compose 配置⽂件为中⼼的相对路径作为数据卷挂载到容器。
- ./cache:/tmp/cache
// 使⽤⽤户的相对路径(~/ 表⽰的⽬录是 /home/<⽤户⽬录>/ 或者 /root/)。
- ~/configs:/etc/configs/:rocontainer容器用法
/
/ 已经存在的命名的数据卷。
- datavolume:/var/lib/mysql
如果你不使⽤宿主机的路径,你可以指定⼀个volume_driver。
volume_driver: mydriver
22.volumes_from
从其它容器或者服务挂载数据卷,可选的参数是 :ro或者 :rw,前者表⽰容器只读,后者表⽰容器对数据卷是可读可写的。默认情况下是可读可写的。
volumes_from:
- service_name
- service_name:ro
- container:container_name
- container:container_name:rw
23.cap_add, cap_drop
添加或删除容器的内核功能。详细信息在前⾯容器章节有讲解,此处不再赘述。
cap_add:
- ALL
cap_drop:
- NET_ADMIN
- SYS_ADMIN
指定⼀个容器的⽗级cgroup。
cgroup_parent: m-executor-abcd
25.devices
设备映射列表。与Docker client的–device参数类似。
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
这个标签可以扩展另⼀个服务,扩展内容可以是来⾃在当前⽂件,也可以是来⾃其他⽂件,相同服务的情况下,后来者会有选择地覆盖原有配置。
extends:
file: l
service: webapp
⽤户可以在任何地⽅使⽤这个标签,只要标签内容包含file和service两个值就可以了。file的值可以是相对或者绝对路径,如果不指定file的值,那么Compose会读取当前YML⽂件的信息。
更多的操作细节在后⾯的12.3.4⼩节有介绍。
27work_mode
⽹络模式,与Docker client的–net参数类似,只是相对多了⼀个service:[service name] 的格式。
例如:
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"
可以指定使⽤服务或者容器的⽹络。
28works
加⼊指定⽹络,格式如下:
services:
some-service:
networks:
- some-network
- other-network
关于这个标签还有⼀个特别的⼦标签aliases,这是⼀个⽤来设置服务别名的标签,例如:
services:
some-service:
networks:
some-network:
aliases:
-
alias1
- alias3
other-network:
aliases:
- alias2
29.其它
还有这些标签:cpu_shares, cpu_quota, cpuset, domainname, hostname, ipc, mac_address, mem_limit, memswap_limit, privileged,
read_only, restart, shm_size, stdin_open, tty, user, working_dir
上⾯这些都是⼀个单值的标签,类似于使⽤docker run的效果。
cpu_shares: 73
cpu_quota: 50000
cpuset: 0,1
user: postgresql
working_dir: /code
domainname: foo
hostname: foo
ipc: host
mac_address: 02:42:ac:11:65:43
mem_limit: 1000000000
memswap_limit: 2000000000
privileged: true
restart: always
read_only: true shm_size: 64M stdin_open: true tty: true

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。