Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-2-Compose 命令说明
Compose 命令說明
1)命令對象與格式
對于 Compose 來說,大部分命令的對象既可以是項目本身,也可以指定為項目中 的服務或者容器。如果沒有特別的說明,命令對象將是項目,這意味著項目中所有 的服務都會受到命令影響。
userdeMBP:compose-haproxy-web user$ docker-compose --help ... Options:-f, --file FILE Specify an alternate compose file (default: docker-compose.yml) 指定使用的 Compose 模板文件,默認為docker-compose.yml,可以多次指定-p, --project-name NAME Specify an alternate project name(default: directory name)指定項目名稱,默認將使用所在目錄名稱作為項目名--verbose Show more output 輸出更多調試信息--log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) 設置日志級別--no-ansi Do not print ANSI control characters 不輸出ANSI控制字符-v, --version Print version and exit 打印版本并退出-H, --host HOST Daemon socket to connect to Daemon socket連接的主機--x-networking 使用Docker的可拔插網絡后段特性(需要Docker1.9及以后版本)--x-network-driver DRIVER指定網絡后端的驅動,默認為bridge(需要Docker1.9及以后版本)格式:
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]?
?
2)命令使用說明
1> build
build [options] [--build-arg key=val...] [SERVICE...]構建(重新構建)項目中的服務容器
服務容器一旦構建后,將會帶上一個標記名,例如對于 web 項目中的一個 db 容 器,可能是 web_db。
?
可以隨時在項目目錄下運行docker-compose build來重新構建服務
?
2> help
獲得一個命令的幫助
?
3> kill
格式及選項:
Usages : docker-compose kill [options] [SERVICE...] Options:-s SIGNAL SIGNAL to send to the container.Default signal is SIGKILL.指定發送的信號,默認發送 SIGKILL 信號來強制停止服務容器?
4> logs
格式及選項
Usage: docker-compose logs [options] [SERVICE...]Options:--no-color Produce monochrome output.關閉顏色-f, --follow Follow log output. 跟蹤日志輸出 -t, --timestamps Show timestamps. 展示時間戳--tail="all" Number of lines to show from the end of the logs for each container.展示每個容器日志結尾的行數查看服務容器的輸出。默認情況下,docker-compose 將對不同的服務輸出使用不同的顏色來區分。
可以通過--no-color來關閉顏色。該命令在調試問題的時候十分有用。
?
5> pause
格式:
Usage: docker-compose pause [SERVICE...]暫停一個服務容器
?
6> port
格式及選項:
Usage: docker-compose port [options] SERVICE PRIVATE_PORTOptions:--protocol=proto tcp or udp [default: tcp] 指定端口協議,tcp(默認值)或者 udp--index=index index of the container if there are multiple instances of a service [default: 1]如果同一服務存在多個容器,指定命令對象容器的序號(默認為1)打印某個容器端口所映射的公共端口
7> ps
Usage: docker-compose ps [options] [SERVICE...]Options:-q, --quiet Only display IDs 只打印容器的 ID 信息--services Display services 顯示服務--filter KEY=VAL Filter services by a property 通過屬性過濾服務?
8> pull
格式和選項:
Usage: docker-compose pull [options] [SERVICE...]Options: --ignore-pull-failures Pull what it can and ignores images with pull failures. 忽略拉取鏡像過程中的錯誤--parallel Deprecated, pull multiple images in parallel (enabled by default). 棄用,并行拉取多個鏡像(默認可用)--no-parallel Disable parallel pulling. 不可并行拉取-q, --quiet Pull without printing progress information 沒有打印進程信息的拉取--include-deps Also pull services declared as dependencies 也拉取聲稱為依賴的服務?
9> restart
格式和選項:
Usage: docker-compose restart [options] [SERVICE...]Options:-t, --timeout TIMEOUT Specify a shutdown timeout in seconds.(default: 10)指定重啟前停止容器的超時(默認為 10 秒)?
10> rm
格式和選項:
Usage: docker-compose rm [options] [SERVICE...]Options:-f, --force Don't ask to confirm removal 強制直接刪除,包括非停止狀態的容器。一般盡量不要使用該選項-s, --stop Stop the containers, if required, before removing 如果需要,在移除前先停止該容器-v Remove any anonymous volumes attached to containers 刪除容器所掛載的數據卷-a, --all Deprecated - no effect. 棄用-沒有影響?
11> run
格式和選項:
Usage:docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] SERVICE [COMMAND] [ARGS...]Options:-d, --detach Detached mode: Run container in the background, print new container name. 分離模式:后臺運行容器,打印新容器名--name NAME Assign a name to the container 為容器指定一個名字--entrypoint CMD Override the entrypoint of the image.覆蓋默認的容器啟動指令-e KEY=VAL Set an environment variable (can be used multiple times) 設置環境變量值,可多次使用選項來設置多個環境變量-l, --label KEY=VAL Add or override a label (can be used multiple times) 添加或覆寫標簽,可多次使用-u, --user="" Run as specified username or uid 指定運行容器的用戶名或者 uid--no-deps Don't start linked services. 不自動啟動關聯的服務容器--rm Remove container after run. Ignored in detached mode. 運行命令后自動刪除容器, -d模式下將忽略-p, --publish=[] Publish a container's port(s) to the host 映射容器端口到本地主機--service-ports Run command with the service's ports enabled and mapped to the host. 配置服務端口并映射到本地主機--use-aliases Use the service's network aliases in the network(s) the container connects to. 在容器連接的網絡中使用服務網絡的別名-v, --volume=[] Bind mount a volume (default []) 連接掛載數據卷,默認為[]-T Disable pseudo-tty allocation. By default `docker-compose run` allocates a TTY. 不分配偽 tty,意味著依賴 tty 的指令將無法運行-w, --workdir="" Working directory inside the container 在容器中的運行目錄這里run的service一定是之前docker-compose up命令開啟的容器中的一種
在指定服務上執行一個命令,比如:
?
userdeMacBook-Pro:compose-haproxy-web user$ docker-compose run weba env PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=db02a3babdb3 TERM=xterm COMPOSE_HAPROXY_WEB_WEBA_1_PORT=tcp://172.17.0.4:80 COMPOSE_HAPROXY_WEB_WEBA_1_PORT_80_TCP=tcp://172.17.0.4:80 COMPOSE_HAPROXY_WEB_WEBA_1_PORT_80_TCP_ADDR=172.17.0.4 COMPOSE_HAPROXY_WEB_WEBA_1_PORT_80_TCP_PORT=80 COMPOSE_HAPROXY_WEB_WEBA_1_PORT_80_TCP_PROTO=tcp COMPOSE_HAPROXY_WEB_WEBA_1_NAME=/compose-haproxy-web_weba_run_e5f54aba4fd5/compose-haproxy-web_weba_1 COMPOSE_HAPROXY_WEB_WEBA_1_ENV_LANG=C.UTF-8 COMPOSE_HAPROXY_WEB_WEBA_1_ENV_PYTHONIOENCODING=UTF-8 COMPOSE_HAPROXY_WEB_WEBA_1_ENV_GPG_KEY=C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF COMPOSE_HAPROXY_WEB_WEBA_1_ENV_PYTHON_VERSION=2.7.15 COMPOSE_HAPROXY_WEB_WEBA_1_ENV_PYTHON_PIP_VERSION=18.1 WEBA_PORT=tcp://172.17.0.4:80 WEBA_PORT_80_TCP=tcp://172.17.0.4:80 WEBA_PORT_80_TCP_ADDR=172.17.0.4 WEBA_PORT_80_TCP_PORT=80 WEBA_PORT_80_TCP_PROTO=tcp WEBA_NAME=/compose-haproxy-web_weba_run_e5f54aba4fd5/weba WEBA_ENV_LANG=C.UTF-8 WEBA_ENV_PYTHONIOENCODING=UTF-8 WEBA_ENV_GPG_KEY=C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF WEBA_ENV_PYTHON_VERSION=2.7.15 WEBA_ENV_PYTHON_PIP_VERSION=18.1 WEBA_1_PORT=tcp://172.17.0.4:80 WEBA_1_PORT_80_TCP=tcp://172.17.0.4:80 WEBA_1_PORT_80_TCP_ADDR=172.17.0.4 WEBA_1_PORT_80_TCP_PORT=80 WEBA_1_PORT_80_TCP_PROTO=tcp WEBA_1_NAME=/compose-haproxy-web_weba_run_e5f54aba4fd5/weba_1 WEBA_1_ENV_LANG=C.UTF-8 WEBA_1_ENV_PYTHONIOENCODING=UTF-8 WEBA_1_ENV_GPG_KEY=C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF WEBA_1_ENV_PYTHON_VERSION=2.7.15 WEBA_1_ENV_PYTHON_PIP_VERSION=18.1 LANG=C.UTF-8 PYTHONIOENCODING=UTF-8 GPG_KEY=C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF PYTHON_VERSION=2.7.15 PYTHON_PIP_VERSION=18.1 HOME=/root?
將會啟動一個 web 服務容器,并執行命令。 默認情況下,如果存在關聯,則所有關聯的服務將會自動被啟動,除非這些服務已經在運行中。
該命令類似啟動容器后運行指定的命令,相關卷、鏈接等等都將會按照配置自動創建。
兩個不同點:
- 給定命令將會覆蓋原有的自動運行命令;
- 不會自動創建端口,以避免沖突。
如果不希望自動啟動關聯的容器,可以使用 --no-deps選項,例如
$ docker-compose run --no-deps web python manage.py shell將不會啟動 web 容器所關聯的其它容器。
?
12> scale
格式及選項:
Usage: docker-compose scale [options] [SERVICE=NUM...]Options:-t, --timeout TIMEOUT Specify a shutdown timeout in seconds.(default: 10)指定重啟前停止容器的超時(默認為 10 秒)設置指定服務運行的容器個數。
通過 SERVICE=NUM的參數來設置數量。例如:
$ docker-compose scale web=3 db=2將啟動 3 個容器運行 web 服務,2 個容器運行 db 服務。
一般的,當指定數目多于該服務當前實際運行容器,將新創建并啟動容器;反之,將停止容器。
?
13> start
格式:
docker-compose start [SERVICE...]啟動已經存在的服務容器
?
14> stop
格式及選項:
Usage: docker-compose stop [options] [SERVICE...]Options:-t, --timeout TIMEOUT Specify a shutdown timeout in seconds.(default: 10)指定重啟前停止容器的超時(默認為 10 秒)停止已經處于運行狀態的容器,但不刪除它。通過 docker-compose start可以再次啟動這些容器。
?
15> unpause
格式:
Usage: docker-compose unpause [SERVICE...]恢復處于暫停狀態中的服務
?
16> up
Usage: docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]Options:-d, --detach Detached mode: Run containers in the background,print new container names. Incompatible with --abort-on-container-exit. 分離模式:在后臺運行服務容器,打印新容器名。不與--abort-on-container-exit兼容--no-color Produce monochrome output. 不使用顏色來區分不同的服務的控制臺輸出--quiet-pull Pull without printing progress information 不帶打印過程信息地拉取--no-deps Don't start linked services. 不啟動服務所鏈接的容器--force-recreate Recreate containers even if their configuration and image haven't changed. 即使他們的配置和鏡像沒有改變,也強制重新創建容器,不能與--no-recreate連用--always-recreate-deps Recreate dependent containers.Incompatible with --no-recreate. 重新創建依賴鏡像,不能與--no-recreate連用--no-recreate If containers already exist, don't recreate them. Incompatible with --force-recreate and -V. 如果容器已經存在了,則不重新創建,不能與--force-recreate連用--no-build Don't build an image, even if it's missing. 不再構建鏡像,即使丟失--no-start Don't start the services after creating them. 在創建后不再開啟服務--build Build images before starting containers. 在開啟容器時構建鏡像--abort-on-container-exit Stops all containers if any container was stopped. Incompatible with -d. 如果有任意容器停止了,就停止所有的容器。與-d參數不連用-t, --timeout TIMEOUT Use this timeout in seconds for container shutdown when attached or when containers are already running. (default: 10) 當連接容器或容器已經運行時或停止容器時候的超時(默認為 10 秒)-V, --renew-anon-volumes Recreate anonymous volumes instead of retrieving data from the previous containers.重新創建匿名數據卷來替代從以前的容器中檢索數據--remove-orphans Remove containers for services not defined in the Compose file. 移除Compose文件中的服務沒有定義的容器--exit-code-from SERVICE Return the exit code of the selected service container. Implies --abort-on-container-exit. 運行已選服務容器的exit代碼,同時實現--abort-on-container-exit參數功能--scale SERVICE=NUM Scale SERVICE to NUM instances. Overrides the `scale` setting in the Compose file if present. 將服務擴展到NUM個實例。覆蓋Compose文件中存在的`scale`設置該命令十分強大,它將嘗試自動完成包括構建鏡像,(重新)創建服務,啟動服務,并關聯服務相關容器的一系列操作。
鏈接的服務都將會被自動啟動,除非已經處于運行狀態
可以說,大部分時候都可以直接通過該命令來啟動一個項目
默認情況,如果服務容器已經存在, docker-compose up將會嘗試停止容器, 然后重新創建(保持使用 volumes-from掛載的卷),以保證新啟動的服務匹配docker-compose.yml文件的最新內容
如果用戶不希望容器被停止并重新創建,可以使用--no-recreate參數 。這樣將只會啟動處于停止狀態的容器,而忽略已經運行的服務。
如果用戶只想重新部署某個服務,可以使用 docker-compose up --no-deps -d <SERVICE_NAME>來重新創建服務并后臺停止舊服務,啟動新服務,并不會影響到其所依賴的服務
?
17> migrate-to-labels(現在好像已經沒有這個功能了)
重新創建容器,并添加 label。
主要用于升級 1.2 及更早版本中創建的容器,添加缺失的容器標簽。 實際上,最?底的辦法當然是刪除項目,然后重新創建。
?
18> version
userdeMacBook-Pro:~ user$ docker-compose version docker-compose version 1.23.2, build 1110ad01 docker-py version: 3.6.0 CPython version: 3.6.6 OpenSSL version: OpenSSL 1.1.0h 27 Mar 2018打印版本信息
?
?
2) Compose 模板文件
模板文件是使用 Compose 的核心,涉及到的指令關鍵字也比較多。但大家不用擔心,這里面大部分指令跟docker run 相關參數的含義都是類似的
默認的模板文件名稱為 docker-compose.yml,格式為 YAML 格式
版本2和版本1最大的不同:- 添加了版本信息
- 需要將所有的服務放到services根下面
??每個服務都必須通過image指令指定鏡像或 build指令(需要 Dockerfile)等來自動構建生成鏡像
如果在docker-compose.yml中使用了build指令,那么在Dockerfile中設置的選項(如CMD、EXPOSE、VOLUME、ENV等)將會自動被獲取,無需在docker-compose.yml中再次設置
?
3)模版文件的指令
1> build
用于指定Dockerfile文件所在的文件夾的路徑(可以是絕對路徑,或者是相對于docker-compose.yml文件的路徑)。docker-compose會利用它自動構建鏡像并使用這個鏡像
build: /path/to/build/dir?
2> cap_add, cap_drop
指定容器的內核能力(capacity)分配。
例如,讓容器擁有所有能力可以指定為:
cap_add:- ALL去掉 NET_ADMIN 能力可以指定為:
cap_drop:- NET_ADMIN?
3> command
覆蓋容器啟動后默認執行的命令,如:
command: echo "hello world"?
4> cgroup_parent(這是什么???)
指定父 cgroup 組,意味著將繼承該組的資源限制。 例如,創建了一個 cgroup 組名稱為 cgroups_1:
cgroup_parent: cgroups_1?
5> container_name
指定容器名稱。默認將會使用 項目名稱-服務名稱-序號 這樣的格式。 例如:
container_name: docker-web-container需要注意,指定容器名稱后,該服務將無法進行擴展(scale),因為 Docker 不允 許多個容器具有相同的名稱
?
?
6> devices
指定設備映射關系,如:
?
7> dns
自定義 DNS 服務器。可以是一個值,也可以是一個列表,如:
?
8> dns_search
配置 DNS 搜索域。可以是一個值,也可以是一個列表
dns_search: example.com dns_search:- domain1.example.com- domain2.example.com?
9> dockerfile
如果需要指定額外的編譯鏡像的 Dockefile 文件,可以通過該指令來指定,如:
dockerfile: Dockerfile-alternate注意,該指令不能跟 image同時使用,否則 Compose 將不知道根據哪個指令來 生成最終的服務鏡像
?
10> env_file
從文件中獲取環境變量,可以為單獨的文件路徑或列表
如果通過 docker-compose -f FILE方式來指定 Compose 模板文件,則 env_file中變量的路徑會基于模板文件路徑:
如果有變量名稱與 environment指令沖突,則按照慣例,以后者為準
env_file: .env env_file:- ./common.env- ./apps/web.env- /opt/secrets.env環境變量文件中每一行必須符合格式,支持 開頭的注釋行
# common.env: Set development environment PROG_ENV=development?
11> environment
設置環境變量。你可以使用數組或字典兩種格式
只給定名稱的變量會自動獲取運行 Compose 主機上對應變量的值,可以用來防止泄露不必要的數據,如:
environment:RACK_ENV: developmentSESSION_SECRET:或:
environment:- RACK_ENV=development- SESSION_SECRET注意,如果變量名稱或者值中用到 true|fale,yes|no 等表達布爾含義的詞匯,最好放到引號里,避免 YAML 自動解析某些內容為對應的布爾語義。
http://yaml.org/type/bool.html中給出了這些特定詞匯,包括:
y|Y|yes|Yes|YES|n|N|no|No|NO |true|True|TRUE|false|False|FALSE |on|On|ON|off|Off|OFF?
12> expose
暴露端口,但不映射到宿主機,只被連接的服務訪問。僅可以指定內部端口為參數:
?
expose:- "3000"- "8000"?
?
13> extends
基于其它模板文件進行擴展
例如我們已經有了一個 webapp 服務,定義一個基礎模板文件為 common.yml:
# common.yml webapp:build: ./webappenvironment:- DEBUG=false- SEND_EMAILS=false再編寫一個新的 development.yml文件,使用 common.yml中的 webapp 服務進行擴展。
# development.yml web:extends:file: common.ymlservice: webappports:- "8000:8000"links:- dbenvironment:- DEBUG=true db:image: postgres后者會自動繼承 common.yml 中的 webapp 服務及環境變量定義。 使用 extends 需要注意:
- 要避免出現循環依賴,例如 A依賴B,B依賴C,C返回來依賴A的情況
- extends 不會繼承 links 和 volumes_from 中定義的容器和數據卷資源
一般的,推薦在基礎模板中只定義一些可以共享的鏡像和環境變量,在擴展模板中具體指定應用變量、鏈接、數據卷等信息。
?
14> external_links
鏈接到 docker-compose.yml 外部的容器,甚至 并非Compose管理的外部容器。參數格式跟 links類似:
external_links:- redis_1- project_db_1:mysql- project_db_1:postgresql?
15> external_hosts
類似 Docker 中的 --add-host參數,指定額外的 host 名稱映射信息。 例如:
extra_hosts:- "googledns:8.8.8.8"- "dockerhub:52.1.157.61"這會導致啟動后的服務容器中 /etc/hosts 文件中添加如下兩條條目:
8.8.8.8 googledns 52.1.157.61 dockerhub?
16> image
指定為鏡像名稱或鏡像 ID。如果鏡像在本地不存在, Compose將會嘗試拉去這個鏡像:
image: ubuntu?
17> labels
為容器添加 Docker 元數據(metadata)信息。例如可以為容器添加輔助說明信息
labels:com.startupteam.description: "webapp for a startup team"com.startupteam.department: "devops department"com.startupteam.release: "rc3 for v1.0"?
18> links
鏈接到其它服務中的容器。使用服務名稱(同時作為別名)或服務名稱:服務別名 (SERVICE:ALIAS)格式都可以:
links:- db- db:database- redis使用的別名將會自動在服務容器中的 /etc/hosts里創建。例如:
172.17.2.186 db 172.17.2.186 database 172.17.2.187 redis被鏈接容器中相應的環境變量也將被創建
?
19> log_driver
類似 Docker 中的 --log-driver參數,指定日志驅動類型;
目前支持三種日志驅動類型:
log_driver: "json-file" log_driver: "syslog" log_driver: "none"?
20> log_opt
日志驅動的相關參數,如:
log_driver: "syslog" log_opt:syslog-address: "tcp://192.168.0.42:123"?
21> net
設置網絡模式。使用和 docker client的 --net 參數一樣的值:
net: "bridge" net: "none" net: "container:[name or id]" net: "host"?
22> pid
跟主機系統共享進程命名空間。打開該選項的容器之間,以及容器和宿主機系統之間可以通過進程 ID 來相互訪問和操作。
pid: "host"?
23> ports
暴露端口信息
使用宿主:容器(HOST:CONTAINER) 格式,或者僅僅指定容器的端口(宿主將會隨機選擇端口)都可以
ports:- "3000"- "8000:8000"- "49100:22"- "127.0.0.1:8001:8001"注意:當使用 HOST:CONTAINER格式來映射端口時,如果你使用的容器端口小于 60 并且沒放到引號里,可能會得到錯誤結果,因為yaml會自動解析 XX:YY
這種數字格式為 60 進制。為避免出現這種問題,建議數字串都采用引號包括起來的字符串格式。
?
24> security_opt
指定容器模板標簽(label)機制的默認屬性(用戶、角色、類型、級別等)。 例如配置標簽的用戶名和角色名。
security_opt:- label:user:USER- label:role:ROLE?
25> ulimits
指定容器的 ulimits 限制值。
例如,指定最大進程數為 65535,指定文件句柄數為 20000(軟限制,應用可以隨 時修改不能超過硬限制) 和 40000(系統硬限制,只能 root 用戶提高)
nproc: 65535nofile:soft: 20000hard: 40000?
26> volumes
數據卷所掛載路徑設置。可以設置宿主機路徑 ( HOST:CONTAINER) 或加上訪問 模式 ( HOST:CONTAINER:ro)。
該指令中路徑支持相對路徑。例:
volumes:- /var/lib/mysql- cache/:/tmp/cache- ~/configs:/etc/configs/:ro?
27> volumes_driver
較新版本的 Docker 支持數據卷的插件驅動。 用戶可以先使用第三方驅動創建一個數據卷,然后使用名稱來訪問它。 此時,可以通過 volumes_driver來指定驅動。
volume_driver: mydriver?
28> volumes_from
從另一個服務或容器掛載它的數據卷:
volumes_from:- service_name- container_name?
29> 其它指令
還有如cpu_shares,cpuset,domainname,entrypoint,hostname,ipc,mac_address,mem_limit,memswap_limit,privileged,read_only,restart,stdin_open,tty,user,working_dir等指令,基本上和docker-run中對應的參數的功能一致
例如,指定使用 cpu 核 0 和 核 1,只用 50% 的 CPU 資源:
cpu_shares: 73 cpuset: 0,1指定服務容器啟動后執行的命令:
entrypoint: /code/entrypoint.sh指定容器中運行應用的用戶名:
user: nginx指定容器中工作目錄:
working_dir: /code指定容器中搜索域名、主機名、mac 地址等:
domainname: your_website.com hostname: test mac_address: 08-00-27-00-0C-0A指定容器中實現進程間通信:
ipc: host指定容器中內存和內存交換區限制都為 1G:
mem_limit: 1g memswap_limit: 1g允許容器中運行一些特權命令:
privileged: true指定容器退出后的重啟策略為始終重啟。該命令對保持服務始終運行十分有效,在 生產環境中推薦配置為 always或者 unless-stopped
restart: always以只讀模式掛載容器的 root 文件系統,意味著不能對容器內容進行修改:
read_only: true打開標準輸入,可以接受外部輸入:
stdin_open: true模擬一個假的遠程控制臺:
tty: true?
30>讀取環境變量
?
從 1.5.0 版本開始,Compose 模板文件支持動態讀取主機的系統環境變量。
例如,下面的 Compose 文件將從運行它的環境中讀取變量 ${MONGO_VERSION} 的值,并寫入執行的指令中。
db:image: "mongo:${MONGO_VERSION}"如果執行MONGO_VERSION=3.0 docker-compose up則會啟動一個mongo:3.2鏡像的容器;如果執行MONGO_VERSION=3.0 docker-compose up,則會啟動一個mongo:2.8鏡像的容器
?
?
?
?
?
轉載于:https://www.cnblogs.com/wanghui-garcia/p/10124660.html
總結
以上是生活随笔為你收集整理的Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-2-Compose 命令说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux服务器配置https访问
- 下一篇: POJ-2299