日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

目錄
  • docker compose快速開(kāi)始
  • 一、什么是docker compose
    • 1. Compose 特性
      • 在單獨(dú)的主機(jī)上提供多個(gè)相互隔離的環(huán)境
      • 在創(chuàng)建容器時(shí),自動(dòng)保存 volume 數(shù)據(jù)
      • 只重建有改動(dòng)的容器
      • 可以使用變量
    • 2. 使用 Compose 步驟和思路
    • 二、docker-compose常用命令
      • 三、docker compose 安裝
        • 四、docker-compose.yml 基礎(chǔ)
          • 五、工作常用技巧
            • docker-compose或docker run 啟動(dòng)容器后就退出
              • docker-compose一個(gè)應(yīng)用啟動(dòng)多個(gè)節(jié)點(diǎn)
                • 使用Docker-Compose,如何執(zhí)行多個(gè)命令

                docker compose快速開(kāi)始

                一、什么是docker compose

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

                docker-compose是基于docker的開(kāi)源項(xiàng)目,托管于github上,由python實(shí)現(xiàn),調(diào)用 docker服務(wù)的API負(fù)責(zé)實(shí)現(xiàn)對(duì)docker容器集群的快速編排,即通過(guò)一個(gè)單獨(dú)的yaml文件,來(lái)定義一組相關(guān)的容器來(lái)為一個(gè)項(xiàng)目服務(wù)。

                Compose 項(xiàng)目是 Docker 官方的開(kāi)源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì) Docker 容器集群的快速編排。從功能上看,跟 OpenStack 中的 Heat 十分類似。

                快速編排:站在項(xiàng)目角度將一組相關(guān)聯(lián)容器整合在一起,對(duì)這組容器按照指定順序進(jìn)行啟動(dòng)。

                Compose 允許用戶通過(guò)一個(gè)單獨(dú)的 docker-compose.yml 模板文件(YAML格式)來(lái)定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目(project)。
                這里涉及2個(gè)重要的概念:

                • 服務(wù)(service):一個(gè)應(yīng)用的容器,實(shí)際上可以包括若干運(yùn)行相同鏡像的容器實(shí)例。
                • 項(xiàng)目(project):由一組關(guān)聯(lián)的應(yīng)用容器組成的一個(gè)完整業(yè)務(wù)單元,在docker-compose.yml文件中定義。

                Compose 的默認(rèn)管理對(duì)象是項(xiàng)目,通過(guò)子命令對(duì)項(xiàng)目中的一組容器進(jìn)行便捷地生命周期管理。

                Compose 項(xiàng)目由 Python編寫(xiě),實(shí)現(xiàn)上調(diào)用了Docker服務(wù)提供的API來(lái)對(duì)容器進(jìn)行管理。因此,只要所操作的平臺(tái)支持 Docker APl,就可以在其上利用Compose來(lái)進(jìn)行編排管理。

                1. Compose 特性

                在單獨(dú)的主機(jī)上提供多個(gè)相互隔離的環(huán)境

                Compose 用項(xiàng)目名稱來(lái)隔離不同的環(huán)境,在沒(méi)有設(shè)置項(xiàng)目名稱的情況下,Compose 會(huì)用 docker-compose.yml 文件所在根目錄名稱做為項(xiàng)目名稱。

                每個(gè)項(xiàng)目有自己的 Docker network,不同項(xiàng)目的 Docker network 彼此不通。

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

                在創(chuàng)建容器時(shí),自動(dòng)保存 volume 數(shù)據(jù)

                Compose 在啟動(dòng)容器時(shí),會(huì)自動(dòng)保存 volume。當(dāng)我們用 docker-compose down 刪掉容器后,再用 docker-compose up 啟動(dòng)時(shí),之前 volume 會(huì)自動(dòng)掛載到新建的容器中。

                只重建有改動(dòng)的容器

                當(dāng) docker-compose.yml 中的某個(gè)容器有改動(dòng)時(shí),用 Compose 重啟項(xiàng)目,改動(dòng)的容器會(huì)重新生成,沒(méi)有改動(dòng)的容器則保持不變。

                僅重新創(chuàng)建已更改的容器,當(dāng)您重新啟動(dòng)未更改的服務(wù)時(shí),Compose 會(huì)使用現(xiàn)有容器。

                可以使用變量

                變量在環(huán)境之間組合重復(fù)使用.

                Compose 支持在 docker-compose.yml 中使用變量,可以通過(guò)設(shè)置變量來(lái)配合不同的使用環(huán)境。

                2. 使用 Compose 步驟和思路

                • 使用 Dockerfile 定義您的應(yīng)用程序的環(huán)境
                • 使用 docker-compose.yml 定義組成您的應(yīng)用程序的服務(wù)
                • 使用 docker-compose.yml 定義構(gòu)成應(yīng)用程序的服務(wù),這樣它們可以在隔離環(huán)境中一起運(yùn)行。
                • 運(yùn)行docker compose up啟動(dòng)并運(yùn)行程序
                • 最后,執(zhí)行 docker-compose up 命令來(lái)啟動(dòng)并運(yùn)行整個(gè)應(yīng)用程序。

                Compose 允許用戶通過(guò)一個(gè)單獨(dú)的 docker-compose.yml 模板文件(YAML格式)來(lái)定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目(project)。

                二、docker-compose常用命令

                docker-compose # 拉取鏡像
                docker-compose up -d nginx # 運(yùn)行nginx容器
                docker-compose up -d # 運(yùn)行所有容器
                docker-compose ps # 查看容器運(yùn)行狀態(tài)
                docker-compose down # 停止容器和容器網(wǎng)絡(luò)
                docker-compose rm nginx # 刪除nginx容器
                docker-compose run yaml中定義的服務(wù)名 命令 #在指定服務(wù)上運(yùn)行一個(gè)命令

                默認(rèn)情況下,docker-compose up啟動(dòng)的容器都在前臺(tái),控制臺(tái)將會(huì)同時(shí)打印所有容器的輸出信息,可以很方便進(jìn)行調(diào)試。當(dāng)通過(guò)Ctrl+c停止命令時(shí),所有容器將會(huì)停止。
                如果希望在后臺(tái)啟動(dòng)并運(yùn)行所有的容器,使用docker-compose up -d

                總結(jié): 批量啟動(dòng)時(shí), docker-compose up -d 比較常用!

                三、docker compose 安裝

                只有 Linux 平臺(tái)上在安裝docker時(shí)沒(méi)有安裝docker-compose,windows、macos平臺(tái)安裝docker時(shí)會(huì)自動(dòng)安裝docker-compose。

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

                四、docker-compose.yml 基礎(chǔ)

                【推薦】詳解docker-compose.yml文件常用模版命令
                參考URL:https://www.jb51.net/article/229685.htm

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

                • services

                一個(gè)service代表一個(gè)container,這個(gè)container可以從dockerhub的image來(lái)創(chuàng)建,或者從本地的Dockerfile build出來(lái)的image來(lái)創(chuàng)建。
                service的啟動(dòng)類似docker run,我們可以給其指定network和volme,所以可以給service指定network和volume的引用

                • networks
                • volumes

                官方示例:https://docs.docker.com/compose/compose-file/

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

                示例應(yīng)用程序由以下部分組成:

                • 2 個(gè)服務(wù),由 Docker 鏡像支持:webapp和database
                • 1 個(gè)密鑰(HTTPS 證書(shū)),注入前端
                • 1個(gè)配置(HTTP),注入前端
                • 1 個(gè)持久卷,附加到后端
                • 2 個(gè)網(wǎng)絡(luò)
                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: {}

                此示例說(shuō)明了volumesconfigssecrets之間的區(qū)別。雖然它們都作為掛載的文件或目錄暴露給服務(wù)容器,但只有一個(gè)卷可以配置為讀寫(xiě)訪問(wèn)。secretsconfigs是只讀的。volumes配置允許您選擇卷驅(qū)動(dòng)程序并傳遞驅(qū)動(dòng)程序選項(xiàng)以根據(jù)實(shí)際基礎(chǔ)架構(gòu)調(diào)整卷管理。Configs 和 Secrets 依賴于平臺(tái)服務(wù),并且被聲明external為它們不作為應(yīng)用程序生命周期的一部分進(jìn)行管理:Compose 實(shí)現(xiàn)將使用特定于平臺(tái)的查找機(jī)制來(lái)檢索運(yùn)行時(shí)值。

                五、工作常用技巧

                docker-compose或docker run 啟動(dòng)容器后就退出

                問(wèn)題背景:
                啟動(dòng)容器:docker-compose up -d
                查看容器運(yùn)行情況:docker-compose ps
                結(jié)果容器并沒(méi)有運(yùn)行,運(yùn)行 docker-compose ps -a 命令發(fā)現(xiàn),容器在啟動(dòng)后短時(shí)間內(nèi)又停止了

                問(wèn)題描述總結(jié):docker-compose 啟動(dòng)容器后就退出,查看日志沒(méi)有報(bào)錯(cuò)。

                問(wèn)題分析:
                Docker容器后臺(tái)運(yùn)行,就必須有一個(gè)前臺(tái)進(jìn)程.容器運(yùn)行的命令如果不是那些一直掛起的命令(比如運(yùn)行top,tail),就是會(huì)自動(dòng)退出的。

                docker 容器的生命周期是同容器中的前臺(tái)進(jìn)程相關(guān)的,如果容器內(nèi)沒(méi)有前臺(tái)進(jìn)程,容器就會(huì)自動(dòng)停止。

                Docker Compose解決方案:
                方案一:自己?jiǎn)?dòng)一個(gè)前臺(tái)進(jìn)程tail -F anything
                Docker Compose保持容器運(yùn)行
                要使容器在啟動(dòng)時(shí)保持運(yùn)行docker-compose,請(qǐng)使用以下命令

                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 加上這個(gè)開(kāi)機(jī)重啟參數(shù):–restart always -d

                方案二:在 docker-compose 中添加 tty: true 關(guān)鍵字

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

                tty: true 的作用是為容器分配一個(gè)偽終端,就相當(dāng)于 docke run -t, 我的理解是這樣就是把 /bin/bash 當(dāng)做前臺(tái)進(jìn)程

                docker-compose一個(gè)應(yīng)用啟動(dòng)多個(gè)節(jié)點(diǎn)

                我們目前的docker-compose 中的service容器中各自只有一個(gè),通過(guò)scale可以去擴(kuò)展service。
                例如將web服務(wù)的數(shù)量變?yōu)槿齻€(gè):

                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.啟動(dòng)服務(wù)

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

                3.查看應(yīng)用狀態(tài)

                docker-compose ps 

                使用Docker-Compose,如何執(zhí)行多個(gè)命令

                scale參數(shù)官方說(shuō)明: https://docs.docker.com/compose/reference/scale/

                實(shí)戰(zhàn)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

                分享到:
                標(biāo)簽:Docker 快速 教程 服務(wù)器 詳細(xì)
                用戶無(wú)頭像

                網(wǎng)友整理

                注冊(cè)時(shí)間:

                網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

                • 51998

                  網(wǎng)站

                • 12

                  小程序

                • 1030137

                  文章

                • 747

                  會(huì)員

                趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
                最新入駐小程序

                數(shù)獨(dú)大挑戰(zhàn)2018-06-03

                數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

                答題星2018-06-03

                您可以通過(guò)答題星輕松地創(chuàng)建試卷

                全階人生考試2018-06-03

                各種考試題,題庫(kù),初中,高中,大學(xué)四六

                運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

                記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

                每日養(yǎng)生app2018-06-03

                每日養(yǎng)生,天天健康

                體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

                通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定