Docker 容器管理
單一容器管理
容器的識別符號
每個容器被建立後都會分配一個CONTAINER_ID作為容器的唯一識別符號,後續的啟動、停止等操作都通過CONTAINER_ID來完成的。
CONTAINER_ID很難記憶,在建立容器時,可以用--name引數給容器起一個名字。用名字代替CONTAINER_ID對容器進行操作。
docker ps #查詢CONTAINER_ID的簡略形式
docker stop container_id/container_name #停止容器
docker start container_id/container_name #啟動容器
查詢容器資訊
docker inspect #查詢容器的所有基本資訊,包括執行狀況、儲存位置等
docker logs #查詢日誌
docker stats # 查詢容器佔用的系統資源
容器內部的命令
經常有登入Docker容器內部執行命令的需求,可以在容器中啟動sshd服務來響應使用者登入,但sshd方式存在程序開銷和增加被攻擊
的風險,同時違反Docker所倡導的“一個容器一個程序”的原則。
Docer提供了原生的方式登入容器 docker exec:
docker exec container_name 容器內執行的命令
可以加上“-it”引數,相當於以root身份登入容器內可以連續執行命令,執行完成後通過“exit”或者“ctrl +d”退出。
多容器管理
Docker倡導的理念是“一個容器一個程序”,假如一個服務由多個程序組成,就要建立多個容器組成一個系統,相互分工和配合來對外提供完整服務。
在通一臺主機下,docker run命令提供“--link”選項建立容器之間的互連。但有一個前提條件,使用“--link containerA”建立容器B時,容器A必須已經穿件並且啟動執行,
所以容器啟動是按順序的。
容器編排工具 Docker Compose
Docker提供一個容器編排工具——Docker Compose,它允許使用者在一個模板(YAML格式)中定義一組相關的應用容器,這組容器會根據配置模板中的
“--link”等引數,對啟動的優先順序自動排序,簡單執行一條“docker-compose up”,就可以把同一個服務中的多個容器一次建立和啟動。
docker-compose.yml檔案:
wordpress:
image:wordpress
links:
-db:mysql
ports:
- 8080:80
db:
image:mariandb
environment :
MYSQL_ROOT_PASSWORD:example
這個配置檔案建立了兩個容器wordpress 和 db 使用image指定映象,links、ports、environment分別對應docker run中的“--links”(容器互聯)、“-p”(埠對映)
和“-e”(環境變數設定)。然後通過docker-compose up 命令來建立和啟動wordpress服務。
docker-compose up #啟動和建立容器
docker-compose start #啟動命令
docker-compose stop #停止命令
docker rm container_id #刪除容器
預設的配置檔案是docker-compost.yml, 可以通過“-f”選項指定配置檔案。
docker-compose -f XXX.yml ps #查詢所有容器狀態
docker-compose -f XXX.yml stop #停止專案
docker-compost -f XXX.yml start #啟動專案
docker-compost -f XXX.yml down #刪除專案