docker三劍客之一docker compose
阿新 • • 發佈:2017-08-05
http 定義 mpat com dir 服務 stopped start 包括
compose有兩個重要的概念:
服務(service):一個應用的容器,實際上可以包括若幹運行相同鏡像的容器實例
項目(project):由一組關聯的應用容器組成的一個完整業務單元,在docker-compose.yml文件中定義
compose默認管理對象是項目,通過子命令對項目中的一組容器進行便捷地生命周期管理
安裝
pip安裝,下載編譯好的二進制文件,直接運行在docker容器中三種方案:
pip安裝:
apt-get install python-pip -y
pip install -U docker-compose
安裝後,可以添加bash補全命令:
curl -L https://raw.githubusercontent.com/docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
卸載:
pip uninstall docker-compose
Compose命令說明
大多數Compose命令都是運行於一個或多個服務的,如果服務沒有指定,該命令將會作用到項目,即應用到所有服務
build Usage: build [options] [SERVICE...] Options: --force-rm Always remove intermediate containers. --no-cache Do not use cache when building the image. --pull Always attempt to pull a newer version of the image. 當修改dockerfile或者docker-compose時,運行docker-compose build 重建鏡像。 生成鏡像後,可使用docker-compose up啟動
kill
通過發送SIGKILL的信號強制停止運行的容器,這個信號可以選擇性的通過,比如:
docker-compose kill -s SIGKINT
logs Usage: logs [options] [SERVICE...] Options: --no-color 單色輸出,不顯示其他顏. -f, --follow 跟蹤日誌輸出,就是可以實時查看日誌 -t, --timestamps 顯示時間戳--tail 從日誌的結尾顯示,--tail=200 顯示日誌輸出.
pause
Usage: pause [SERVICE...]
暫停容器服務. docker-compose pause 暫停所有服務. docker-compose pause web,之後暫停web服務的容器。
port Usage: port [options] SERVICE PRIVATE_PORT Options: --protocol=proto tcp or udp [default: tcp] --index=index index of the container if there are multiple instances of a service [default: 1] 輸出服務的共有端口. # docker-compose port web 8080 -- 8080為容器內部端口 0.0.0.0:8884
ps Usage: ps [options] [SERVICE...] Options: -q 只顯示ID 顯示容器. 默認顯示name、command、state、ports
pull Usage: pull [options] [SERVICE...] Options: --ignore-pull-failures 忽略pull失敗的鏡像,繼續pull其他鏡像. pull compose文件中所指明的鏡像.
restart Usage: restart [options] [SERVICE...] Options: -t, --timeout TIMEOUT Specify a shutdown timeout in seconds. (default: 10) Restarts services.
rm Usage: rm [options] [SERVICE...] Options: -f, --force Don‘t ask to confirm removal -v 期初加載到容器的任何匿名卷 -a, --all Also remove one-off containers created by docker-compose run Removes stopped service containers. 如果服務在運行,需要先docker-compose stop 停止容器
run Usage: run [options] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...] Options: -d 後臺運行,輸出容器名. -e KEY=VAL 設置環境變量參數,可以使用多次 -u, --user="" 指定運行的用戶 --no-deps 不啟動link服務,只啟動run的服務. --rm 運行後刪除容器,後臺運行模式除外(-d). -p, --publish=[] 開放端口 --service-ports compose文件中配置什麽端口,就映射什麽端口. -T 禁用TTY. -w, --workdir="" 設置工作目錄 啟動web服務器,並執行bash命令. $ docker-compose run web bash 根據compose配置文件制定的端口,映射到主機: $ docker-compose run --service-ports web python manage.py shell 指定端口映射到主機: $ docker-compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell
scale Usage: scale [SERVICE=NUM...] 設置服務的個數. $ docker-compose scale web=2 worker=3
start
Usage: start [SERVICE...]
啟動服務.
stop Usage: stop [options] [SERVICE...] Options: -t, --timeout TIMEOUT 關閉超時時間 (default: 10). 停止容器.
unpause
Usage: unpause [SERVICE...]
恢復容器服務. docker-compose unpause 恢復所有服務. docker-compose unpause web,之後恢復web服務的容器。
up Usage: up [options] [SERVICE...] Options: -d 後臺運行,輸出容器的名字. Incompatible with --abort-on-container-exit. --no-color 單色輸出. --no-deps 不啟動link服務. --force-recreate 強制重新創建compose服務,即使沒有任何改變。重新創建後啟動容器 Incompatible with --no-recreate. --no-recreate 如果容器已經存在,不重新創建. Incompatible with --force-recreate. --no-build 不創建重啟,即使鏡像不存在. --build 重新創建鏡像,然後生成容器. --abort-on-container-exit 任何容器停止,自動停止所有容器. Incompatible with -d. -t, --timeout TIMEOUT 超時時間. (default: 10) --remove-orphans 移除compose文件中未定義服務的容器
改命令十分強大,它將嘗試自動完成包括鏡像創建,(重新)
docker三劍客之一docker compose