在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ YAML 模板文件
利用數(shù)據(jù)卷容器來備份、恢復(fù)、遷移數(shù)據(jù)卷
Docker 網(wǎng)絡(luò)實(shí)現(xiàn)
實(shí)戰(zhàn) Django
YAML 模板文件
名字空間
控制組
編輯網(wǎng)絡(luò)配置文件
列出
進(jìn)入容器
Compose 命令說明
創(chuàng)建 Tomcat/Weblogic 集群
守護(hù)態(tài)運(yùn)行
快速配置指南
其它安全特性
示例:創(chuàng)建一個(gè)點(diǎn)到點(diǎn)連接
CentOS 系列安裝 Docker
數(shù)據(jù)卷容器
鏡像
指令
創(chuàng)建鏡像
Docker 容器
創(chuàng)建鏡像
常用倉庫
總結(jié)
什么是 Docker
存出和載入鏡像
使用
獲取鏡像
容器互聯(lián)
為什么要使用 Docker?
使用 Wordpress 入門 Fig
啟動(dòng)
容器訪問控制
私有倉庫
使用
基本架構(gòu)
自定義網(wǎng)橋
環(huán)境變量參考
實(shí)戰(zhàn) Rail
服務(wù)端的防護(hù)
刪除
鏡像的實(shí)現(xiàn)原理
多臺(tái)物理主機(jī)之間的容器互聯(lián)
Docker 倉庫
簡介
數(shù)據(jù)卷
命令參考
使用 Supervisor 來管理進(jìn)程
移除
基本結(jié)構(gòu)
命令查詢
終止容器
聯(lián)合文件系統(tǒng)
安裝
簡介
配置 DNS
內(nèi)核能力機(jī)制
導(dǎo)出和導(dǎo)入容器
配置 docker0 網(wǎng)橋
倉庫配置文件
內(nèi)核名字空間
標(biāo)準(zhǔn)化開發(fā)測試和生產(chǎn)環(huán)境
外部訪問容器
fig.yml 參考
Ubuntu 系列安裝 Docker
有用資源
安裝
端口映射實(shí)現(xiàn)
安裝 Fig
工具和示例
簡介
控制組
容器格式
Docker Hub

YAML 模板文件

默認(rèn)的模板文件是 docker-compose.yml,其中定義的每個(gè)服務(wù)都必須通過 image 指令指定鏡像或 build 指令(需要 Dockerfile)來自動(dòng)構(gòu)建。

其它大部分指令都跟 docker run 中的類似。

如果使用 build 指令,在 Dockerfile 中設(shè)置的選項(xiàng)(例如:CMD, EXPOSE, VOLUME, ENV 等) 將會(huì)自動(dòng)被獲取,無需在 docker-compose.yml 中再次設(shè)置。

image

指定為鏡像名稱或鏡像 ID。如果鏡像在本地不存在,Compose 將會(huì)嘗試?yán)ミ@個(gè)鏡像。

例如:

image: ubuntu
image: orchardup/postgresql
image: a4bc65fd

build

指定 Dockerfile 所在文件夾的路徑。 Compose 將會(huì)利用它自動(dòng)構(gòu)建這個(gè)鏡像,然后使用這個(gè)鏡像。

build: /path/to/build/dir

command

覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令。

command: bundle exec thin -p 3000

links

鏈接到其它服務(wù)中的容器。使用服務(wù)名稱(同時(shí)作為別名)或服務(wù)名稱:服務(wù)別名 (SERVICE:ALIAS) 格式都可以。

links:
 - db
 - db:database
 - redis

使用的別名將會(huì)自動(dòng)在服務(wù)容器中的 /etc/hosts 里創(chuàng)建。例如:

172.17.2.186  db
172.17.2.186  database
172.17.2.187  redis

相應(yīng)的環(huán)境變量也將被創(chuàng)建。

external_links

鏈接到 docker-compose.yml 外部的容器,甚至 并非 Compose 管理的容器。參數(shù)格式跟 links 類似。

external_links:
 - redis_1
 - project_db_1:mysql
 - project_db_1:postgresql

ports

暴露端口信息。

使用宿主:容器 (HOST:CONTAINER)格式或者僅僅指定容器的端口(宿主將會(huì)隨機(jī)選擇端口)都可以。

ports:
 - "3000"
 - "8000:8000"
 - "49100:22"
 - "127.0.0.1:8001:8001"

注:當(dāng)使用 HOST:CONTAINER 格式來映射端口時(shí),如果你使用的容器端口小于 60 你可能會(huì)得到錯(cuò)誤得結(jié)果,因?yàn)?YAML 將會(huì)解析 xx:yy 這種數(shù)字格式為 60 進(jìn)制。所以建議采用字符串格式。

expose

暴露端口,但不映射到宿主機(jī),只被連接的服務(wù)訪問。

僅可以指定內(nèi)部端口為參數(shù)

expose:
 - "3000"
 - "8000"

volumes

卷掛載路徑設(shè)置??梢栽O(shè)置宿主機(jī)路徑 (HOST:CONTAINER) 或加上訪問模式 (HOST:CONTAINER:ro)。

volumes:
 - /var/lib/mysql
 - cache/:/tmp/cache
 - ~/configs:/etc/configs/:ro

volumes_from

從另一個(gè)服務(wù)或容器掛載它的所有卷。

volumes_from:
 - service_name
 - container_name

environment

設(shè)置環(huán)境變量。你可以使用數(shù)組或字典兩種格式。

只給定名稱的變量會(huì)自動(dòng)獲取它在 Compose 主機(jī)上的值,可以用來防止泄露不必要的數(shù)據(jù)。

environment:
  RACK_ENV: development
  SESSION_SECRET:

environment:
  - RACK_ENV=development
  - SESSION_SECRET

env_file

從文件中獲取環(huán)境變量,可以為單獨(dú)的文件路徑或列表。

如果通過 docker-compose -f FILE 指定了模板文件,則 env_file 中路徑會(huì)基于模板文件路徑。

如果有變量名稱與 environment 指令沖突,則以后者為準(zhǔn)。

env_file: .env

env_file:
  - ./common.env
  - ./apps/web.env
  - /opt/secrets.env

環(huán)境變量文件中每一行必須符合格式,支持 # 開頭的注釋行。

# common.env: Set Rails/Rack environment
RACK_ENV=development

extends

基于已有的服務(wù)進(jìn)行擴(kuò)展。例如我們已經(jīng)有了一個(gè) webapp 服務(wù),模板文件為 common.yml。

# common.yml
webapp:
  build: ./webapp
  environment:
    - DEBUG=false
    - SEND_EMAILS=false

編寫一個(gè)新的 development.yml 文件,使用 common.yml 中的 webapp 服務(wù)進(jìn)行擴(kuò)展。

# development.yml
web:
  extends:
    file: common.yml
    service: webapp
  ports:
    - "8000:8000"
  links:
    - db
  environment:
    - DEBUG=true
db:
  image: postgres

后者會(huì)自動(dòng)繼承 common.yml 中的 webapp 服務(wù)及相關(guān)環(huán)節(jié)變量。

net

設(shè)置網(wǎng)絡(luò)模式。使用和 docker client--net 參數(shù)一樣的值。

net: "bridge"
net: "none"
net: "container:[name or id]"
net: "host"

pid

跟主機(jī)系統(tǒng)共享進(jìn)程命名空間。打開該選項(xiàng)的容器可以相互通過進(jìn)程 ID 來訪問和操作。

pid: "host"

dns

配置 DNS 服務(wù)器。可以是一個(gè)值,也可以是一個(gè)列表。

dns: 8.8.8.8
dns:
  - 8.8.8.8
  - 9.9.9.9

cap_add, cap_drop

添加或放棄容器的 Linux 能力(Capabiliity)。

cap_add:
  - ALL

cap_drop:
  - NET_ADMIN
  - SYS_ADMIN

dns_search

配置 DNS 搜索域??梢允且粋€(gè)值,也可以是一個(gè)列表。

dns_search: example.com
dns_search:
  - domain1.example.com
  - domain2.example.com

working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares

這些都是和 docker run 支持的選項(xiàng)類似。

cpu_shares: 73

working_dir: /code
entrypoint: /code/entrypoint.sh
user: postgresql

hostname: foo
domainname: foo.com

mem_limit: 1000000000
privileged: true

restart: always

stdin_open: true
tty: true
上一篇:Docker 容器下一篇:安裝 Fig