docker學習筆記4-Compose
阿新 • • 發佈:2020-08-19
Compose 是用於定義和執行多容器 Docker 應用程式的工具。通過 Compose,您可以使用 YML 檔案來配置應用程式需要的所有服務。然後,使用一個命令,就可以從 YML 檔案配置中建立並啟動所有服務。
Compose使用的三個步驟如下:
- 使用Dockerfile定義環境。
- 使用 docker-compose.yml 定義構成應用程式的服務,這樣它們可以在隔離環境中一起執行。
- 最後,執行 docker-compose up 命令來啟動並執行整個應用程式
從上述描述中我們可以看出,compose的核心在於配置docker-compose.yml檔案,簡單的配置及其目的可通過下列模組獲取
#此處需要和你的docker-compose版本一致,例如你的docker-compose版本為1.7.8 那麼這個版本就是2 version: "2" networks: ghost: #服務,主要用來整合容器,表明他們之前的關係 services: #二級標籤是 ghost-app,這個名字是使用者自己自定義,它就是服務名稱。 ghost-app: #基於一份 Dockerfile,在使用 up 啟動之時執行構建任務, #這個構建標籤就是 build,它可以指定 Dockerfile 所在資料夾的路徑 #這裡就是找當前下的ghost資料夾 build: context: ./dir #指定目錄 dockerfile: Dockerfile #指定Dockerfile檔名 args: test:1 #新增構建引數,這是隻能在構建過程中使用的環境變數 labels: #置構建映象的標籤 ports: -9030:9090 #將主機上的9030埠應射到容器的9090埠 #加入指定網路 networks: - ghost #容器的依賴、啟動先後的問題,先啟動依賴 depends_on: #啟動順序 db redis ghost_app, 關閉順序ghost_app, redis, app - db - redis container_name: #指定容器的名字 cap_add: #容器新增宿主主機的核心功能 - ALL #新增全部 cap_drop:#容器刪除擁有的宿主主機的核心功能 - SYS_PTRACE #關閉PTRACE許可權 cgroup_parent: m-executor-abcd #為容器指定父cgroup,繼承該組的資源限制 command: #覆蓋容器預設的啟動命令 entrypoint: #覆蓋容器預設的entrypoint deploy: #採用swarm叢集的方式部署時才會用到該方案,這裡先不詳細展開 dns: #自定義dns devices: #指定裝置對映列表 env_file: #從檔案新增環境變數 environment: #新增環境變數鍵值對形式 expose: #暴露埠,但不應射到主機,只被連線的服務訪問 extra_hosts: #新增主機名對映 volumes: #掛載資料捲到容器 sysctls: #設定容器中的核心引數 restart: #設定重啟模式 networks: #配置容器連線的網路 nginx: image: nginx:latest #如果不需要build,可通過image指定直接從dockerhub抓取映象 container_name: #指定容器的名字而不是使用預設名字 networks: - ghost depends_on: - ghost-app #宿主機會隨機對映埠。 ports: - 80:80 - 88:88 db: #指定服務的映象名稱或映象 ID image: mysql:5.7.20 networks: - ghost #設定映象變數,它可以儲存變數到映象裡面 environment: MYSQL_ROOT_PASSWORD: mysqlroot MYSQL_USER: ghost MYSQL_PASSWORD: ghost #掛載一個目錄或者一個已存在的資料卷容器, volumes: - ./data:/var/lib/mysql ports: - 3306:3306
docker-compose常用的命令:
- docker-compose build 構建
- docker-compose stop 停止
- docker-compose up 啟動
- docker-compose rm 刪除
docker-compose安裝:
- 下載程式
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
- 新增執行許可權
chmod +x /usr/bin/docker-compose
- 驗證安裝完成
docker-compose --version