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

初識(shí) docker compose

1. 為什么要用docker compose

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

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

同時(shí),隨著技術(shù)演進(jìn),我們?cè)絹碓酵瞥鐚⒋笮头?wù)拆分成較小的微服務(wù),分別部署到獨(dú)立的機(jī)器或容器中,也就是說,我們的應(yīng)用系統(tǒng)往往由數(shù)十個(gè)甚至上百個(gè)小型服務(wù)組成。試想一下,使用之前講到的容器技術(shù)搭建系統(tǒng),不僅需要眾多復(fù)雜的命令,處理眾多容器間的依賴更是非常消耗精力的。

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

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

2. 獲取 Docker Compose

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

# 下載 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í)行權(quán)限
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 命令啟動(dòng)應(yīng)用

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

3.1 編寫 docker-compose.yml

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

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

此時(shí)目錄結(jié)構(gòu)如下:

圖片描述

3.2 啟動(dòng)、重建和停止

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

sudo docker-compose up -d

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

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

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

Tips: 建議大家像容器使用一樣對(duì)待 Docker Compose 項(xiàng)目,做到隨用隨啟,隨停隨刪。

4. 小結(jié)

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