91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker?compose怎么使用

發布時間:2022-05-24 17:37:54 來源:億速云 閱讀:577 作者:iii 欄目:開發技術

這篇文章主要介紹“docker compose怎么使用”,在日常操作中,相信很多人在docker compose怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”docker compose怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

docker compose快速開始

一、什么是docker compose

docker-compose是基于docker的開源項目,托管于github上,由python實現,調用 docker服務的API負責實現對docker容器集群的快速編排,即通過一個單獨的yaml文件,來定義一組相關的容器來為一個項目服務。

Compose 項目是 Docker 官方的開源項目,負責實現對 Docker 容器集群的快速編排。從功能上看,跟 OpenStack 中的 Heat 十分類似。

快速編排:站在項目角度將一組相關聯容器整合在一起,對這組容器按照指定順序進行啟動。

Compose 允許用戶通過一個單獨的 docker-compose.yml 模板文件(YAML格式)來定義一組相關聯的應用容器為一個項目(project)。
這里涉及2個重要的概念:

  • 服務(service):一個應用的容器,實際上可以包括若干運行相同鏡像的容器實例。

  • 項目(project):由一組關聯的應用容器組成的一個完整業務單元,在docker-compose.yml文件中定義。

Compose 的默認管理對象是項目,通過子命令對項目中的一組容器進行便捷地生命周期管理。

Compose 項目由 Python編寫,實現上調用了Docker服務提供的API來對容器進行管理。因此,只要所操作的平臺支持 Docker APl,就可以在其上利用Compose來進行編排管理。

1. Compose 特性

在單獨的主機上提供多個相互隔離的環境

Compose 用項目名稱來隔離不同的環境,在沒有設置項目名稱的情況下,Compose 會用 docker-compose.yml 文件所在根目錄名稱做為項目名稱。

每個項目有自己的 Docker network,不同項目的 Docker network 彼此不通。

在單個主機上建立多個隔離環境,Compose 使用項目名稱將環境彼此隔離。您可以在多個不同的上下文中使用此項目名稱。默認項目名稱是項目目錄的基本名稱。您可以使用-p 命令行選項或 COMPOSE_PROJECT_NAME 環境變量設置自定義項目名稱 。默認項目目錄是 Compose 文件的基本目錄。可以使用–project-directory 命令行選項自定義項目目錄。

在創建容器時,自動保存 volume 數據

Compose 在啟動容器時,會自動保存 volume。當我們用 docker-compose down 刪掉容器后,再用 docker-compose up 啟動時,之前 volume 會自動掛載到新建的容器中。

只重建有改動的容器

當 docker-compose.yml 中的某個容器有改動時,用 Compose 重啟項目,改動的容器會重新生成,沒有改動的容器則保持不變。

僅重新創建已更改的容器,當您重新啟動未更改的服務時,Compose 會使用現有容器。

可以使用變量

變量在環境之間組合重復使用.

Compose 支持在 docker-compose.yml 中使用變量,可以通過設置變量來配合不同的使用環境。

2. 使用 Compose 步驟和思路

  • 使用 Dockerfile 定義您的應用程序的環境

  • 使用 docker-compose.yml 定義組成您的應用程序的服務

  • 使用 docker-compose.yml 定義構成應用程序的服務,這樣它們可以在隔離環境中一起運行。

  • 運行docker compose up啟動并運行程序

  • 最后,執行 docker-compose up 命令來啟動并運行整個應用程序。

Compose 允許用戶通過一個單獨的 docker-compose.yml 模板文件(YAML格式)來定義一組相關聯的應用容器為一個項目(project)。

二、docker-compose常用命令

docker-compose # 拉取鏡像
docker-compose up -d nginx # 運行nginx容器
docker-compose up -d # 運行所有容器
docker-compose ps # 查看容器運行狀態
docker-compose down # 停止容器和容器網絡
docker-compose rm nginx # 刪除nginx容器
docker-compose run yaml中定義的服務名 命令 #在指定服務上運行一個命令

默認情況下,docker-compose up啟動的容器都在前臺,控制臺將會同時打印所有容器的輸出信息,可以很方便進行調試。當通過Ctrl+c停止命令時,所有容器將會停止。
如果希望在后臺啟動并運行所有的容器,使用docker-compose up -d

總結: 批量啟動時, docker-compose up -d 比較常用!

三、docker compose 安裝

只有 Linux 平臺上在安裝docker時沒有安裝docker-compose,windows、macos平臺安裝docker時會自動安裝docker-compose。

apt install python3-pip
sudo pip install -U docker-compose

四、docker-compose.yml 基礎

Docker Compose配置文件docker-compose.yml是Docker Compose的核心,用于定義服務、網絡和數據卷。格式為YAML,默認路徑為./docker-compose.yml,可以使用.yml或.yaml擴展名,目前Compose配置文件格式的最新版本為V3。Compose配置文件中涉及的配置項也比較多,但大部分配置項的含義跟docker run命令相關選項是類似的。

  • services

一個service代表一個container,這個container可以從dockerhub的image來創建,或者從本地的Dockerfile build出來的image來創建。
service的啟動類似docker run,我們可以給其指定network和volme,所以可以給service指定network和volume的引用

  • networks

  • volumes

(External user) --> 443 [frontend network]
                            |
                  +--------------------+
                  |  frontend service  |...ro...<HTTP configuration>
                  |      "webapp"      |...ro...<server certificate> #secured
                  +--------------------+
                            |
                        [backend network]
                            |
                  +--------------------+
                  |  backend service   |  r+w   ___________________
                  |     "database"     |=======( persistent volume )
                  +--------------------+        \_________________/

示例應用程序由以下部分組成:

  • 2 個服務,由 Docker 鏡像支持:webapp和database

  • 1 個密鑰(HTTPS 證書),注入前端

  • 1個配置(HTTP),注入前端

  • 1 個持久卷,附加到后端

  • 2 個網絡

services:
  frontend:
    image: awesome/webapp
    ports:
      - "443:8043"
    networks:
      - front-tier
      - back-tier
    configs:
      - httpd-config
    secrets:
      - server-certificate
  backend:
    image: awesome/database
    volumes:
      - db-data:/etc/data
    networks:
      - back-tier
volumes:
  db-data:
    driver: flocker
    driver_opts:
      size: "10GiB"
configs:
  httpd-config:
    external: true
secrets:
  server-certificate:
    external: true
networks:
  # The presence of these objects is sufficient to define them
  front-tier: {}
  back-tier: {}

此示例說明了volumesconfigssecrets之間的區別。雖然它們都作為掛載的文件或目錄暴露給服務容器,但只有一個卷可以配置為讀寫訪問。secretsconfigs是只讀的。volumes配置允許您選擇卷驅動程序并傳遞驅動程序選項以根據實際基礎架構調整卷管理。Configs 和 Secrets 依賴于平臺服務,并且被聲明external為它們不作為應用程序生命周期的一部分進行管理:Compose 實現將使用特定于平臺的查找機制來檢索運行時值。

五、工作常用技巧

docker-compose或docker run 啟動容器后就退出

問題背景:
啟動容器:docker-compose up -d
查看容器運行情況:docker-compose ps
結果容器并沒有運行,運行 docker-compose ps -a 命令發現,容器在啟動后短時間內又停止了

問題描述總結:docker-compose 啟動容器后就退出,查看日志沒有報錯。

問題分析:
Docker容器后臺運行,就必須有一個前臺進程.容器運行的命令如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的。

docker 容器的生命周期是同容器中的前臺進程相關的,如果容器內沒有前臺進程,容器就會自動停止。

Docker Compose解決方案:
方案一:自己啟動一個前臺進程tail -F anything
Docker Compose保持容器運行
要使容器在啟動時保持運行docker-compose,請使用以下命令

command: tail -F anything

version: "3.8"
services:
  web:
    image: "centos-test:v5"
    command: bash -c "/etc/init.d/xxx start && tail -f /var/log/meesage.log"

容器解決方案:
tail -F anything 或
docker run 加上這個開機重啟參數:&ndash;restart always -d

方案二:在 docker-compose 中添加 tty: true 關鍵字

version: '3'
services: 
    web: 
        container_name: node_web
        build:
              context: .
        volumes: 
            - ./:/home/node/app
        ports: 
            - 8888:8080
        tty: true

tty: true 的作用是為容器分配一個偽終端,就相當于 docke run -t, 我的理解是這樣就是把 /bin/bash 當做前臺進程

docker-compose一個應用啟動多個節點

我們目前的docker-compose 中的service容器中各自只有一個,通過scale可以去擴展service。
例如將web服務的數量變為三個:

docker-compose up --scale web=3 -d

1.docker-compose.yml配置
version: “3”
services:
web:
image: nginx:1.19.9-alpine
restart: always
ports:

80-81:80

2.啟動服務

docker-compose up -d --scale web=2

3.查看應用狀態

docker-compose ps

使用Docker-Compose,如何執行多個命令

實戰demo:

version: "3.8"
services:
  web:
    image: "centos-test:v1"
    command: bash -c "/etc/init.d/xxx start && tail -f /var/log/message.log"
    init: true

到此,關于“docker compose怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广东省| 谢通门县| 威海市| 呼图壁县| 大化| 洛浦县| 临高县| 彩票| 凯里市| 海南省| 永城市| 睢宁县| 天津市| 固始县| 洪雅县| 赞皇县| 太仓市| 綦江县| 吴忠市| 门头沟区| 利津县| 新安县| 海丰县| 柳江县| 皋兰县| 军事| 孟村| 普洱| 太白县| 晴隆县| 无棣县| 东山县| 吉林市| 曲水县| 贵阳市| 石首市| 汾西县| 梁河县| 宁化县| 渭源县| 手游|