<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                Docker Compose 是 Docker 容器進行編排的工具,定義和運行多容器的應用,可以一條命令啟動多個容器。 使用Compose 基本上分為三步: 1. Dockerfile 定義應用的運行環境 2. docker-compose.yml 定義組成應用的各服務 3. docker-compose up 啟動整個應用 基本規則: 1. 大小寫敏感 2. 使用縮進表示層級關系 3. 禁止使用tab縮進,只能使用空格鍵 4. 縮進長度沒有限制,只要元素對齊就表示這些元素屬于一個層級 5. 使用#表示注釋 6. 字符串可以不用引號標注 ## 安裝Compose Compose網站:[https://docs.docker.com/compose/](https://docs.docker.com/compose/) curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose -v ## 編寫示例 ``` version: "3" services: nginx: # docker鏡像,先拉取本地,再拉取云端 image: nginx:${NGINX_VERSION} # 容器名稱 container_name: web # 端口映射 ports: - "${NGINX_HTTP_HOST_PORT}:80" # 數據掛載 宿主機:docker 此處可以寫相對路徑 volumes: - ${SOURCE_DIR}:/var/www/html/:rw # 重啟策略 # no是默認的重啟策略,在任何情況下都不會重啟容器。 # 指定為always時,容器總是重新啟動。 restart: always # 注意:如果服務之間是在同個networks之下的話就可以通過 服務名:port 來訪問鏈接 networks: - default php72: # build用context指定的dockerfile創建 build: context: . # 傳入dockerfile里面的參數,注意與context同級,在dockerfile里面通過ARG接收 args: - PHP_VERSION: ${PHP72_VERSION} # 指定容器名稱 container_name: php72 # 鏈接到另一個服務中的容器 SERVICE:ALIAS # 在當前的web服務的容器中可以通過鏈接的db服務的別名database訪問db容器中的數據庫應用 # 如果沒有指定別名,則可直接使用服務名訪問。 links: - db:database # 鏈接到docker-compose.yml 外部的容器 external_links: - redis_1 - project_db_1:mysql - project_db_1:postgresq # 使用該參數,container內的root擁有真正的root權限。 # 否則,container內的root只是外部的一個普通用戶權限。 privileged: true # 容器名稱 container_name: php72 # 啟動時必須等mysql服務啟動好 depends_on: - mysql cap_add: - SYS_PTRACE networks: - default mysql: image: mysql:${MYSQL_VERSION} ports: - "${MYSQL_HOST_PORT}:3306" volumes: - ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/mysql.cnf:ro - ${MYSQL_DATA_DIR}:/var/lib/mysql/:rw restart: always networks: - default # 環境變量傳入dockerfile里面的變量 # 與args不同environment定義的變量在容器內部也可以反問 environment: MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}" redis: image: redis:${REDIS_VERSION} ports: - "${REDIS_HOST_PORT}:6379" volumes: - ${REDIS_CONF_FILE}:/etc/redis.conf:ro restart: always entrypoint: ["redis-server", "/etc/redis.conf"] networks: - default # 指定其為同個docker網絡 # docker network ls來查看 # 同一網絡下,可以通過服務名來互聯 networks: default: ``` - 變量來自同目錄下的.env文件 - php通過同級目錄的dockerfile來構建 - 鏡像改了之后要通過`docker-compose build --no-cache` 來重新構建一下 ## 常用命令 * **ps**:列出所有運行容器 ~~~ docker-compose ps ~~~ * **logs**:查看服務日志輸出 ~~~ docker-compose logs // 加-f,持續輸出。 ~~~ * **port**:打印綁定的公共端口,下面命令可以輸出 eureka 服務 8761 端口所綁定的公共端口 ~~~ docker-compose port eureka 8761 ~~~ * **build**:構建或者重新構建服務 ~~~ docker-compose build ~~~ * **start**:啟動指定服務已存在的容器 ~~~ docker-compose start eureka ~~~ * **stop**:停止已運行的服務的容器 ~~~ docker-compose stop eureka ~~~ * **rm**:刪除指定服務的容器 ~~~ docker-compose rm eureka ~~~ * **up**:構建、啟動容器 ~~~ docker-compose up ~~~ * **kill**:通過發送 SIGKILL 信號來停止指定服務的容器 ~~~ docker-compose kill eureka ~~~ * **pull**:下載服務鏡像 * **scale**:設置指定服務運氣容器的個數,以 service=num 形式指定 ~~~ docker-compose scale user=3 movie=3 ~~~ * **run**:在一個服務上執行一個命令 ~~~ docker-compose run 容器名 bash ~~~ >[info] > 1. 通過docker-compose編排的的容器是沒有容器自己的ip,因為他們共用一個或多個network,可以通過`docker network ls`來查看,可以通過服務名來鏈接網絡,`docker network inspect <container id>`可以查看對應網絡的配置。 > 2. 通過docker-compose build的dockerfile一定要有CMD \[ "/bin/bash" \]等執行命令,才能通過docker-compose up起來 ### 更多參考 * [官方技術文檔](https://docs.docker.com/compose/) * [compose file reference](https://docs.docker.com/compose/compose-file/) * [docker-compose的每個設置項都介紹了](https://docs.docker.com/compose/compose-file/#network-configuration-reference) * [docker-compose各參數中文解釋](https://blog.csdn.net/qq_29349715/article/details/80818605)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看