第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

初識 docker compose

1. 為什么要用docker compose

在多階段構建章節(jié)中,我們將flask應用打包成了鏡像myhello,然后創(chuàng)建myhello應用容器,它依賴redis服務,所以我們設定myhello容器通過宿主機網(wǎng)絡與redis進行數(shù)據(jù)交換。

如果在別的服務器上,使用Docker重新部署一邊,操作的過程還是比較麻煩的。一般來說,我們要求每個Docker容器只運行一個獨立服務,每個鏡像都要保持盡可能的簡潔、功能單一,貌似這些規(guī)范反而降低了我們的效率。

同時,隨著技術演進,我們越來越推崇將大型服務拆分成較小的微服務,分別部署到獨立的機器或容器中,也就是說,我們的應用系統(tǒng)往往由數(shù)十個甚至上百個小型服務組成。試想一下,使用之前講到的容器技術搭建系統(tǒng),不僅需要眾多復雜的命令,處理眾多容器間的依賴更是非常消耗精力的。

歸結下來,我們?nèi)鄙僖粋€對容器組合進行管理的工具。

Docker Compose 是 Docker 官方編排項目。使用 Docker Compose 可以輕松、高效的管理容器,它是一個用于定義和運行多容器 Docker 的應用程序工具。在 Docker Compose 里,我們通過一個配置文件,將所有與應用系統(tǒng)相關的軟件及它們對應的容器進行配置,之后使用 Docker Compose 提供的命令進行啟動,就能讓 Docker Compose 將剛才我們所提到的那些復雜問題解決掉。

2. 獲取 Docker Compose

安裝 Docker Compose 可以通過下面命令自動下載適應版本的 Compose,并為安裝腳本添加執(zhí)行權限

# 下載 docker-compose 
wget https://github.com/docker/compose/releases/download/1.26.0/docker-compose-Linux-x86_64
# 移到 /usr/local/bin/docker-compose
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
# 給 docker-compose 執(zhí)行權限
sudo chmod +x /usr/local/bin/docker-compose

查看安裝是否成功:

docker-compose -v

3. 使用 Docker Compose

使用 Docker Compose 的步驟分成三步。

  1. 也可以使用現(xiàn)有的鏡像 ,或者根據(jù)需要編寫容器所需鏡像的 Dockerfile
  2. 編寫獲取用于配置容器的 docker-compose.yml
  3. 使用 docker-compose 命令啟動應用

準備鏡像這一過程我們之前已經(jīng)掌握了,編寫docker-compose.yml部分我們會放在下一節(jié)詳細介紹,這里我們就直接來使用它,感受Docker Compose 的強大功能。

3.1 編寫 docker-compose.yml

進入dockerfiledir目錄,新建redis目錄,將之前部署redis容器用到的redis.conf拷貝到redis目錄下,修改redis.conf中的bind 127.0.0.1bind 0.0.0.0,以便其他容器訪問此服務。然后新建文件docker-compose.yml,并將下面的內(nèi)容寫入到這個文件中。

version: "3.8"
services:
    cache:
      image: redis:6.0.5
      container_name: my_redis
      networks:
          - mynetwork
      volumes:
          - ./redis/redis.conf:/usr/local/etc/redis/redis.conf:ro
      command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    app:
      build:
          context: .
          dockerfile: ./Dockerfile-multi-stage
      container_name: my_hello
      networks:
          - mynetwork
      environment:
          - REDIS_HOST=my_redis
      depends_on:
          - cache
      ports:
          - "5000:5000"
networks:
  mynetwork:
    name: my_network
    driver: bridge

此時目錄結構如下:

圖片描述

3.2 啟動、重建和停止

docker-compose up 命令類似于 Docker 中的 docker run,它會根據(jù) docker-compose.yml 中配置的內(nèi)容,創(chuàng)建所有的容器、網(wǎng)絡、數(shù)據(jù)卷等等內(nèi)容,并將它們啟動。與 docker run 一樣,默認情況下 docker-compose up 會在前臺運行,我們可以用 -d 選項使其“后臺”運行,大多數(shù)情況都會加上 -d 選項。

sudo docker-compose up -d

docker-compose 命令默認會識別當前控制臺所在目錄內(nèi)的 docker-compose.yml 文件,而會以這個目錄的名字作為組裝的應用項目的名稱。如果我們需要改變它們,可以通過選項 -f 來修改識別的 Docker Compose 配置文件。--build 用于執(zhí)行重建服務鏡像,更新鏡像時使用。

sudo docker-compose -f ./docker-compose.yml up -d --build

docker-compose down 命令用于停止所有的容器,并將它們刪除,同時消除網(wǎng)絡等配置內(nèi)容,也就是幾乎將這個 Docker Compose 項目的所有影響從 Docker 中清除。

Tips: 建議大家像容器使用一樣對待 Docker Compose 項目,做到隨用隨啟,隨停隨刪。

4. 小結

通過 Docker 讓我們能夠在開發(fā)過程中搭建一套不受干擾的獨立環(huán)境,而 Docker Compose 則讓我們可以處理多套環(huán)境,并能夠做到進行快速切換。在服務搭建的場景中,使用Docker Compose 編排容器,可以使容器技術發(fā)揮更大的價值。下一節(jié),我們將走進Docker Compose的核心,深入了解Compose配置文件的指令的作用和使用方式。