1. 程式人生 > 其它 >Docker-Compose學習筆記

Docker-Compose學習筆記

Docker進階-Docker Compose

官方文件:https://docs.docker.com/compose/

簡介

Docker
DockerFile -> bulid(形成映象)-> run
Docker Compose 就可以輕鬆搞笑的來管理這些容器。以及定義和執行容器

官方介紹

定義執行多個容器
YAML file 配置檔案
single command 簡單命令 有哪些?

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features.

所有環境都可以使用 Docker Compose production、development、staging、testing
Compose works in all environments: production, staging, development, testing, as well as CI workflows. You can learn more about each case in Common Use Cases.

三步驟

Using Compose is basically a three-step process:
1.Define your app’s environment with a Dockerfile so it can be reproduced anywhere.
。Dockerfile保證我們的專案在任何地方可以執行
2.Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.
。services 什麼是服務?
。docker-compose.yml 這個檔案如何寫?
3.Run docker compose up and the Docker compose command starts and runs your entire app. You can alternatively run docker-compose up using the docker-compose binary.
。啟動專案
作用:批量容器編排。

個人理解

Compose 是Docker官方開源的專案,需要進行安裝。
Dockerfile 讓程式在任何地方執行。 web redis mysql nginx 。。。。 多個容器。
Compose

version: "3.9"  # optional since v1.27.0
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

docker-compose up 輕鬆啟動100容器服務
Compose重要的概念:
。服務services:容器,應用 (web,redis,mysql。。。。)
。專案project:一組關連的容器。 如開源部落格 (web + mysql。。。。)


安裝

下載

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose下面地址下載更快些curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

授權

sudo chmod +x /usr/local/bin/docker-compose或者sudo chmod 777 /usr/local/bin/docker-compose

體驗

官網地址:https://docs.docker.com/compose/gettingstarted/
python應用 計數器 redis

1. 應用 app.py
2. Dockerfile 應用打包為映象
3. docker-compose.yml檔案 (定義整個服務,需要的環境,web,redis) 完整的上線服務
4. 啟動compose專案 (docker-compose up)

流程:

1. 建立網路2. 執行docker-compose.yml3. 啟動服務

    執行示列:
    Creating network "composetest_default" with the default driver
    Creating composetest_web_1 ...
    Creating composetest_redis_1 ...
    Creating composetest_web_1
    Creating composetest_redis_1 ... done
    Attaching to composetest_web_1, composetest_redis_1


檔名:composetest
服務名:

    version: "3.9"
    services:
      web:
        build: .
        ports:
          - "5000:5000"
      redis:
        image: "redis:alpine"

停止

docker-compose down 或者 ctrl + c
docker-compose通過編寫docker-compose yml檔案 可以通過compose一鍵啟動或者停止!

將會刪除啟動的容器以及自動建的網路

其餘命令

如果您想在後臺執行您的服務,您可以將-d標誌(用於“分離”模式)傳遞給docker-compose up並用於docker-compose ps檢視當前正在執行的內容:

docker-compose up -d
docker-compose ps
5000/tcp
該docker-compose run命令允許您為您的服務執行一次性命令。例如,要檢視web服務可用的環境變數 :

docker-compose run web env
請參閱docker-compose —help以檢視其他可用命令。您還可以為bash 和 zsh shell安裝命令完成,這也會顯示可用的命令。

如果您使用 Compose 啟動 Compose docker-compose up -d,請在完成服務後停止服務:

docker-compose stop
您可以使用以下down 命令關閉所有內容,完全刪除容器。傳遞—volumes給 Redis 容器使用的資料卷:

docker-compose down —volumes
至此,您已經瞭解了 Compose 工作原理的基礎知識。


小結

1. docker映象 run -> 容器
2. DockerFile 構建映象  (打包)
3. docker-compose 啟動專案  (編排、多個微服務/環境)
4. docker網路

yaml編寫規則

官方配置文件:https://docs.docker.com/compose/compose-file/compose-file-v3/#depends_on

docker-compose.yml 核心所在

#三層
version: "3.9" #版本
services: #服務
  web:
   images:
   bulid:
   ports:
   network:
   ...
  redis:
   ...
  mysql:
   ...
#第三層 其他配置 網路、資料卷、全域性配置
networks:
  frontend:
  backend:
volumes:
  db-data:
configs:

啟動順序

version: "3.9"
services:
  web: # 3
    build: .
    depends_on:
      - db
      - redis
  redis: # 2
    image: redis
  db: # 1
    image: postgres

官網練習 compose一鍵部署wordpress
https://docs.docker.com/samples/wordpress/


實戰演練

    編寫一個springboot專案  引入web  redis依賴
    編寫dockerfile檔案構建映象
    編寫docker-compose.yml檔案
    放到伺服器 建立一個資料夾  在其下docker-compose up一鍵進行啟動

如果專案需要重新部署打包重構映象
docker-compose up - -build