Docker Compose

    版本為 14:31, 30 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    Compose 是一個工具,用來定義與執行多個 container 組成的 Docker Applications。你可以使用 Compose 檔案來組態設定你的應用服務。然後使用單一命令,透過你的組態設定來建立與啟動你的服務。

    安裝

    適用所有 Linux

    $> sudo -i
    
    #> curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    #> chmod +x /usr/local/bin/docker-compose
    
    #> docker-compose --version
    

    常用指令

    ## 啟動容器服務
    docker-compose up
    docker-compose up -d    #背景模式
    
    ## 終止/結束容器服務
    docker-compose down
    
    ## 開啟容器服務
    docker-compose start
    
    ## 停止容器服務
    docker-compose stop
    
    ## 檢視容器服務狀透
    docker-compose ps
    
    ## 進入指定服務的console
    docker-compose exec <service-name> bash
    

    腳本編寫 docker-compose.yml

    image
    指定容器的映像檔

    image: redis
    image: ubuntu:14.04
    image: tutum/influxdb
    image: example-registry.com:4000/postgresql
    image: a4bc65fd

    build
    指定要 re-build 的容器檔案目錄,該目錄底下必須有 Dockerfile。

    build: 7.2-fpm-opcache
    

    command
    執行特定指令

    command: bundle exec thin -p 3000
    or    
    command: [bundle, exec, thin, -p, 3000]

    links
    用於連結另一容器服務,如需要使用到另一容器的mysql服務。可以給出服務名和別名;也可以僅給出服務名,這樣別名將和服務名相同。同 docker run --link。

    links:
     - db
     - db:mysql
     - redis

    ports
    開啟主機端與容器的通訊埠對映

    ports:
     - "3000"
     - "8000:8000"
     - "49100:22"
     - "127.0.0.1:8001:8001"

    expose
    提供 container 之間的埠訪問,不會暴露給主機使用。同 docker run --expose。

    expose:
     - "3000"
     - "8000"

    volumes
    掛載主機端與容器的資料卷對映

    volumes:
     - /var/lib/mysql
     - cache/:/tmp/cache
     - ~/configs:/etc/configs/:ro

    volumes_from
    掛載指定容器服務的資料卷

    當需要存取其它容器內的資料卷時,不用再一一重新掛載,而是利用這參數將指定容器的 volumes 都包含進目前的容器。
    volumes_from:
     - service_name
     - service_name:ro
     - container:container_name
     - container:container_name:rw
    
    Powered by MindTouch Core