1. 程式人生 > >Docker 容器管理

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 #刪除專案