Docker Compose使用

YatHo發表於2017-10-16

Docker提供一個容器編排工具,Docker Compose,允許使用者在一個模板(YAML)中定義一組相關聯的應用容器,這組容器會根據模板中的“--link”等引數,對啟動的優先順序自動排序,簡單的執行一條“docker-compose up”,就可以把同一個服務中的多個容器依次建立和啟動。

 

windows的docker安裝中自帶了docker-compose,但是測試發現通過yml啟動容器組延遲非常厲害,暫時沒有定位到問題,這裡改到ubantu系統中繼續進行學習。

ubantu系統安裝docker請參考網上資料。

安裝docker-compose

curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 

如果出現"Permission denied"錯誤, 則需要在開始時 執行 sudo –i,用root許可權執行上述命令。

chmod +x /usr/local/bin/docker-compose

檢視compose是否安裝成功:

docker-compose --version

  

 

Docker Compose 常用命令:

執行新容器組:docker-compose up  (後臺執行 + “-d”)

刪除容器組:docker-compose down

查詢容器組所有容器狀態:docker-compose ps

停止容器組:docker-compose stop

啟動容器組:docker-compose start

指定YAML配置檔案:docker-compose -f xxx/docker-compose.yml up/down/ps/stop/start

注:預設配置檔名為docker-compose.yml,可以通過“-f”選項指定

 

容器組建立案例:

以readme demo為例,docker命令為:

docker run --name=postgresql-redmine -d --env='DB_NAME=redmine_production' --env 'DB_USER=redmine' --env 'DB_PASS=password' sameersbn/postgresql:9.4-12
 
docker run --name=redmine -d --link=postgresql-redmine:postgresql --publish=10083:80 --env='REDMINE_PORT=10083' sameersbn/redmine:3.2.0-4

 改成docker compose容器組:

postgresql:
    image: sameersbn/postgresql:9.4-12
    environment:
        - DB_NAME=redmine_production
        - DB_USER=redmine
        - DB_PASS=password


redmine: image: sameersbn/redmine:3.2.0-4 links: - postgresql:postgresql ports: - "8087:80" environment: - REDMINE_PORT=8087

  通過docker-compose 啟動容器組,刪除原來建立的容器。

刪除容器命令:docker rm xxx    (-f 強制刪除執行中容器)

相關文章