欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    ocker compose 配置文件 .yml 全面指南

    Compose 是一個(gè)用于定義和運(yùn)行多容器 Docker 的工具。借助 Compose,您可以使用 YAML 文件來(lái)配置應(yīng)用程序的服務(wù)。

    使用 Compose 基本上分為三步:

    1. 使用 Dockerfile 定義您的應(yīng)用程序的環(huán)境
    2. 使用 docker-compose.yml 定義組成您的應(yīng)用程序的服務(wù)
    3. 運(yùn)行docker compose up啟動(dòng)并運(yùn)行程序

    compose 的諸多優(yōu)點(diǎn):

    • 在單個(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í)保留卷數(shù)據(jù)
    • 僅重新創(chuàng)建已更改的容器,當(dāng)您重新啟動(dòng)未更改的服務(wù)時(shí),Compose 會(huì)使用現(xiàn)有容器。
    • 變量在環(huán)境之間組合重復(fù)使用


    多個(gè)配置文件

    我們可以為同一個(gè)項(xiàng)目配置多個(gè)compose文件,使用多個(gè) Compose 文件使您能夠針對(duì)不同的環(huán)境或不同的工作流程自定義 Compose 應(yīng)用程序。

    默認(rèn)情況下,Compose 讀取兩個(gè)文件,docker-compose.yml和一個(gè)可選的docker-compose.override.yml文件。按照慣例,docker-compose.yml包含您的基本配置。override.yml 文件,顧名思義,就是包含現(xiàn)有服務(wù)或全新服務(wù)的配置覆蓋。

    如果在兩個(gè)文件中都定義了服務(wù),Compose 會(huì)使用 override 進(jìn)行合并配置。

    要使用多個(gè)覆蓋文件或具有不同名稱的覆蓋文件,您可以使用該-f選項(xiàng)來(lái)指定文件列表。Compose 按照在命令行中指定的順序合并文件。

    當(dāng)您使用多個(gè)配置文件時(shí),您必須確保文件中的所有路徑都相對(duì)于基本 Compose 文件( 指定的第一個(gè) Compose 文件-f

    docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

    接下來(lái)我們來(lái)具體看看docker-compse.yml有哪些具體的配置:

    一、version

    版本信息,定義關(guān)乎于docker的兼容性,Compose 文件格式有3個(gè)版本,分別為1, 2.x 和 3.x

    二、build

    指定構(gòu)建鏡像的 dockerfile 的上下文路徑,或者詳細(xì)配置對(duì)象。

    version: "3.9"
    services:
      webapp:
        build: ./dir #指定路徑

    或者更詳細(xì)配置的寫(xiě)法:

    version: "3.9"
    services:
      webapp:
        build:
          context: ./dir
          dockerfile: Dockerfile-alternate
          args:
            buildno: 1
    • context 上下文路徑,可以是文件路徑,也可以是到鏈接到 git 倉(cāng)庫(kù)的 url。當(dāng)是相對(duì)路徑時(shí),它被解釋為相對(duì)于 Compose 文件的位置。
    • dockerfile 指定構(gòu)建鏡像的 Dockerfile 文件名
    • args 構(gòu)建參數(shù),只能在構(gòu)建過(guò)程中訪問(wèn)的環(huán)境變量
    • cache_from 緩存解析鏡像列表
    • labels 設(shè)置構(gòu)建鏡像的元數(shù)據(jù)
    • network 設(shè)置網(wǎng)絡(luò)容器連接,none 表示在構(gòu)建期間禁用網(wǎng)絡(luò)
    • shm_size 設(shè)置/dev/shm此構(gòu)建容器的分區(qū)大小
    • target 多階段構(gòu)建,可以指定構(gòu)建哪一層

    三、network

    默認(rèn)情況下,Compose為您的應(yīng)用程序設(shè)置單個(gè)網(wǎng)絡(luò)。services 服務(wù)的每個(gè)容器都加入默認(rèn)網(wǎng)絡(luò),并且可以被該網(wǎng)絡(luò)上的其他容器訪問(wèn)。

    您的應(yīng)用程序網(wǎng)絡(luò)的名稱基于“項(xiàng)目名稱”,也就是其所在目錄的名稱。您可以使用 --project-name 命令行選項(xiàng) 或 COMPOSE_PROJECT_NAME 環(huán)境變量覆蓋項(xiàng)目名稱。

    例如,假設(shè)您的應(yīng)用程序是在一個(gè)名為myapp目錄下,docker-compose.yml如下:

    version: "3.9"
    services:
      web:
        build: .
        ports:
          - "8000:8000"
      db:
        image: postgres
        ports:
          - "8001:5432"

    運(yùn)行docker-compose up,會(huì)發(fā)生以下情況:

    1. 創(chuàng)建了一個(gè)名為 myapp_default 的網(wǎng)絡(luò)。
    2. web加入網(wǎng)絡(luò)。
    3. db加入網(wǎng)絡(luò)。

    上面例子還有一個(gè)注意點(diǎn)就是端口號(hào),注意區(qū)分HOST_PORTCONTAINER_PORT,以上面的db為例:

    • 8001 是宿主機(jī)的端口
    • 5432(postgres的默認(rèn)端口) 是容器的端口

    當(dāng)容器之間通訊時(shí) , 是通過(guò) CONTAINER_PORT 來(lái)連接的。

    我們可以通過(guò)設(shè)置一級(jí)配置network自定義網(wǎng)絡(luò),創(chuàng)建更復(fù)雜的網(wǎng)絡(luò)選項(xiàng),也可以用來(lái)連接已經(jīng)存在的網(wǎng)絡(luò)(不是通過(guò)compose創(chuàng)建的)

    每個(gè)service 配置下也可以指定networks配置,來(lái)指定一級(jí)配置的網(wǎng)絡(luò)。

    version: "3"
    services:
    
      proxy:
        build: ./proxy
        networks:
          - frontend
      app:
        build: ./app
        networks:
          - frontend
          - backend
      db:
        image: postgres
        networks:
          - backend
    
    networks:
      frontend:
        # Use a custom driver
        driver: custom-driver-1
      backend:
        # Use a custom driver which takes special options
        driver: custom-driver-2
        driver_opts:
          foo: "1"
          bar: "2"

    一級(jí)配置networks 創(chuàng)建了自定義的網(wǎng)絡(luò) 。這里配置了兩個(gè)frontendbackend ,且自定義了網(wǎng)絡(luò)類(lèi)型。


    每一個(gè)services下,
    proxy , app , db都定義了networks配置。

    1. proxy 只加入到 frontend網(wǎng)絡(luò)。
    2. db 只加入到backend網(wǎng)絡(luò)。
    3. app同時(shí)加入到 frontendbackend
    4. dbproxy不能通訊,因?yàn)椴辉谝粋€(gè)網(wǎng)絡(luò)中。
    5. app和兩個(gè)都能通訊,因?yàn)?/span>app在兩個(gè)網(wǎng)絡(luò)中都有配置。
    6. dbproxy要通訊,只能通過(guò)app這個(gè)應(yīng)用來(lái)連接。

    同一網(wǎng)絡(luò)上的其他容器可以使用服務(wù)名稱或別名來(lái)連接到其他服務(wù)的容器

    services:
      some-service:
        networks:
          some-network:
            aliases:
              - alias1
              - alias3
          other-network:
            aliases:
              - alias2

    加入網(wǎng)絡(luò)時(shí),還可以指定容器的靜態(tài) IP 地址。

    version: "3.9"
    
    services:
      app:
        image: nginx:alpine
        networks:
          app_net:
            ipv4_address: 172.16.238.10
            ipv6_address: 2001:3984:3989::10
    
    networks:
      app_net:
        ipam:
          driver: default
          config:
            - subnet: "172.16.238.0/24"
            - subnet: "2001:3984:3989::/64"

    一級(jí)networks還有如下這些配置:

    • driver 指定該網(wǎng)絡(luò)應(yīng)使用哪個(gè)驅(qū)動(dòng)程序。默認(rèn)使用bridge單個(gè)主機(jī)上的網(wǎng)絡(luò),overlay代表跨多個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)群
    driver: overlay
    • host or none 使用主機(jī)的網(wǎng)絡(luò)堆棧,或者不使用網(wǎng)絡(luò)。相當(dāng)于docker run --net=hostdocker run --net=none。僅在使用docker stack命令時(shí)使用。如果您使用該docker-compose命令,請(qǐng)改用 network_mode。
    • driver_opts 將選項(xiàng)列表指定為鍵值對(duì)以傳遞給此網(wǎng)絡(luò)的驅(qū)動(dòng)程序
    driver_opts:
      foo: "bar"
      baz: 1
    • attachable 僅在driver設(shè)置為 overlay時(shí)可用。如果設(shè)置為true,那么除了服務(wù)之外,獨(dú)立容器也可以連接到此網(wǎng)絡(luò)。
    networks:
      mynet1:
        driver: overlay
        attachable: true
    • enable_ipv6 在此網(wǎng)絡(luò)上啟用 IPv6 網(wǎng)絡(luò)。
    • ipam 自定義 IPAM (IP地址管理)配置。
    ipam:
      driver: default
      config:
        - subnet: 172.28.0.0/16
    • internal 默認(rèn)情況下,Docker 會(huì)將橋接網(wǎng)絡(luò)連接到它提供外部連接。如果要?jiǎng)?chuàng)建外部隔離的覆蓋網(wǎng)絡(luò),可以將此選項(xiàng)設(shè)置為true。
    • labels 添加元數(shù)據(jù)
    • external如果設(shè)置為true,則指定此網(wǎng)絡(luò)是在 Compose 之外創(chuàng)建的。docker-compose up不會(huì)嘗試創(chuàng)建它,如果它不存在,則會(huì)引發(fā)錯(cuò)誤。在下面的例子中,proxy是通往外界的門(mén)戶。
    version: "3.9"
    
    services:
      proxy:
        build: ./proxy
        networks:
          - outside
          - default
      app:
        build: ./app
        networks:
          - default
    
    networks:
      outside:
        external: true
    • name為此網(wǎng)絡(luò)設(shè)置自定義名稱。
    version: "3.9"
    networks:
      network1:
        name: my-app-net


    四、cap_add, cap_drop

    添加或刪除容器功能。

    cap_add:
      - ALL
    
    cap_drop:
      - NET_ADMIN
      - SYS_ADMIN

    五、cgroup_parent

    為容器指定一個(gè)可選的父 cgroup。

    cgroup_parent: m-executor-abcd

    六、command

    覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令

    command: bundle exec thin -p 3000
    command: ["bundle", "exec", "thin", "-p", "3000"]


    七、configs

    為每個(gè)服務(wù)賦予相應(yīng)的configs訪問(wèn)權(quán)限

    • 簡(jiǎn)短語(yǔ)法,指定配置名稱即可。以下示例授予redis服務(wù)訪問(wèn)my_configmy_other_configconfigs 的權(quán)限。
    version: "3.9"
    services:
      redis:
        image: redis:latest
        deploy:
          replicas: 1
        configs:
          - my_config
          - my_other_config
    configs:
      my_config:
        file: ./my_config.txt
      my_other_config:
        external: true
    • 長(zhǎng)語(yǔ)法
      • source:配置名稱
      • target:要掛載文件的路徑和名稱
      • uidgid:容器的數(shù)字 UID 或 GID
      • mode:掛載在服務(wù)的任務(wù)容器中的文件的權(quán)限,以八進(jìn)制表示。例如,0444 代表可讀。
      • 以下示例在容器內(nèi)設(shè)置configs名稱為my_config ,路徑為redis_config,將模式設(shè)置為0440(組可讀)并將用戶和組設(shè)置為103。該redis服務(wù)無(wú)權(quán)訪問(wèn)my_other_config配置。
    version: "3.9"
    services:
      redis:
        image: redis:latest
        deploy:
          replicas: 1
        configs:
          - source: my_config
            target: /redis_config
            uid: '103'
            gid: '103'
            mode: 0440
    configs:
      my_config:
        file: ./my_config.txt
      my_other_config:
        external: true

    一級(jí)configs詳細(xì)配置:

    • file: 使用指定路徑中的文件內(nèi)容創(chuàng)建配置。
    • external: 如果設(shè)置為 true,則指定此配置已經(jīng)創(chuàng)建。Docker 不會(huì)嘗試創(chuàng)建它,如果它不存在, 會(huì)報(bào)錯(cuò)config not found
    • name: Docker 中配置對(duì)象的名稱。此字段可用于引用包含特殊字符的配置。
    • driverdriver_opts:自定義驅(qū)動(dòng)程序的名稱,以及作為鍵/值對(duì)傳遞的特定于驅(qū)動(dòng)程序的選項(xiàng)。
    • template_driver:要使用的模板驅(qū)動(dòng)程序的名稱,它控制是否以及如何將配置負(fù)載作為模板。如果未設(shè)置驅(qū)動(dòng)程序,則不使用模板。當(dāng)前支持的唯一驅(qū)動(dòng)程序是golang,它使用golang

    在下面例子中,my_first_config是通過(guò)confif_data文件內(nèi)容創(chuàng)建的(就像 <stack_name>_my_first_config)部署堆棧時(shí)一樣,并且my_second_config已經(jīng)創(chuàng)建過(guò)。

    configs:
      my_first_config:
        file: ./config_data
      my_second_config:
        external: true 

    當(dāng) Docker 中的配置名稱與服務(wù)中存在的名稱不同時(shí),可以使用name進(jìn)行配置。

    configs:
      my_first_config:
        file: ./config_data
      my_second_config:
        external:
          name: redis_config

    八、container_name

    指定自定義容器名稱,而不是生成的默認(rèn)名稱。由于 Docker 容器名稱必須是唯一的,因此如果您指定了自定義名稱,則不能將服務(wù)擴(kuò)展到 1 個(gè)以上的容器。

    九、credential_spec

    為托管服務(wù)帳戶配置憑據(jù)規(guī)范。此選項(xiàng)僅用于使用 Windows 容器的服務(wù)。在credential_spec上的配置列表格式為file://<filename>registry://<value-name>

    十、depends_on

    表示服務(wù)之間的依賴關(guān)系。服務(wù)依賴會(huì)導(dǎo)致以下行為:

    • docker-compose up按依賴順序啟動(dòng)服務(wù)。在下面的例子中,dbredisweb之前啟動(dòng)。
    • docker-compose up SERVICE自動(dòng)包含SERVICE的依賴項(xiàng)。在下面的示例中,docker-compose up web還創(chuàng)建并啟動(dòng)dbredis
    • docker-compose stop按依賴順序停止服務(wù)。在以下示例中,webdbredis之前停止。
    version: "3.9"
    services:
      web:
        build: .
        depends_on:
          - db
          - redis
      redis:
        image: redis
      db:
        image: postgres

    十一、deploy

    指定與服務(wù)的部署和運(yùn)行有關(guān)的配置。只在 swarm 模式下才會(huì)有用。

    • endpoint_mode 訪問(wèn)集群服務(wù)的方式。
    1. vip :Docker 集群服務(wù)一個(gè)對(duì)外的虛擬 ip。所有的請(qǐng)求都會(huì)通過(guò)這個(gè)虛擬 ip 到達(dá)集群服務(wù)內(nèi)部的機(jī)器。
    2. dnsrr :DNS 輪詢(DNSRR)。所有的請(qǐng)求會(huì)自動(dòng)輪詢獲取到集群 ip 列表中的一個(gè) ip 地址。
  • labels 在服務(wù)上設(shè)置標(biāo)簽。可以用容器上的 labels(跟 deploy 同級(jí)的配置) 覆蓋 deploy 下的 labels。
  • mode 指定服務(wù)提供的模式
    1. global:全局服務(wù),服務(wù)將部署至集群的每個(gè)節(jié)點(diǎn)。
    2. replicated:復(fù)制服務(wù),復(fù)制指定服務(wù)到集群的機(jī)器上。
  • placement 指定約束和首選項(xiàng)的位置
  • version: "3.9"
    services:
      db:
        image: postgres
        deploy:
          placement:
            constraints:
              - "node.role==manager"
              - "engine.labels.operatingsystem==ubuntu 18.04"
            preferences:
              - spread: node.labels.zone
    • 您可以通過(guò)定義約束表達(dá)式來(lái)限制可以安排任務(wù)的節(jié)點(diǎn)集。約束表達(dá)式可以使用匹配(==) 或排除(!=) 規(guī)則。多個(gè)約束查找可以使用 AND 匹配。約束可以匹配節(jié)點(diǎn)或 Docker 引擎標(biāo)簽,如下所示:

    節(jié)點(diǎn)屬性

    匹配

    例子

    node.id

    節(jié)點(diǎn) ID

    node.id==2ivku8v2gvtg4

    node.hostname

    節(jié)點(diǎn)主機(jī)名

    node.hostname!=node-2

    node.role

    節(jié)點(diǎn)角色 ( manager/ worker)

    node.role==manager

    node.platform.os

    節(jié)點(diǎn)操作系統(tǒng)

    node.platform.os==windows

    node.platform.arch

    節(jié)點(diǎn)架構(gòu)

    node.platform.arch==x86_64

    node.labels

    用戶定義的節(jié)點(diǎn)標(biāo)簽

    node.labels.security==high

    engine.labels

    Docker 引擎的標(biāo)簽

    engine.labels.operatingsystem==ubuntu-14.04

    • max_replicas_per_node 如果服務(wù)是replicated(默認(rèn)值),則限制任何時(shí)間在節(jié)點(diǎn)上運(yùn)行的副本數(shù)
    • replicas 如果服務(wù)是replicated(默認(rèn)值),指定在任何給定時(shí)間應(yīng)運(yùn)行的容器數(shù)量。
    • resources 配置資源約束。在下面示例中,redis服務(wù)被限制為使用不超過(guò) 50M 的內(nèi)存和0.50(單核的 50%)可用處理時(shí)間 (CPU),并保留20M內(nèi)存和0.25CPU 時(shí)間(始終可用)。
    version: "3.9"
    services:
      redis:
        image: redis:alpine
        deploy:
          resources:
            limits:
              cpus: '0.50'
              memory: 50M
            reservations:
              cpus: '0.25'
              memory: 20M
    • restart_policy 配置是否以及如何在退出時(shí)重新啟動(dòng)容器。替換restart
    1. condition: none, on-failure 或 any (默認(rèn): any) 之一。
    2. delay:重新啟動(dòng)嘗試之間等待的時(shí)間(默認(rèn)值:5s)。
    3. max_attempts:在放棄之前嘗試重新啟動(dòng)容器的次數(shù)(默認(rèn)值:永不放棄)。如果在配置的窗口(window)內(nèi)重新啟動(dòng)未成功,則此嘗試不計(jì)入配置max_attempts值。例如,如果 max_attempts 設(shè)置為“2”,并且第一次嘗試重啟失敗,則可能會(huì)嘗試兩次以上的重啟。
    4. window:在決定重啟是否成功之前等待多長(zhǎng)時(shí)間(默認(rèn)值:立即重啟)。
  • rollback_config 在更新失敗的情況下應(yīng)如何回滾服務(wù)。
    1. parallelism:一次回滾的容器數(shù)量。如果設(shè)置為 0,則所有容器同時(shí)回滾。
    2. delay:每個(gè)容器組回滾之間等待的時(shí)間(默認(rèn)為 0 秒)。
    3. failure_action: 如果回滾失敗怎么辦。continue或者pause(默認(rèn)pause
    4. monitor:每次任務(wù)更新后監(jiān)控失敗的持續(xù)時(shí)間(ns|us|ms|s|m|h)(默認(rèn) 5s)注意:設(shè)置為 0 將使用默認(rèn) 5s。
    5. max_failure_ratio:回滾期間允許的故障率(默認(rèn)為 0)。
    6. order:回滾期間的操作順序。stop-first(舊任務(wù)在開(kāi)始新任務(wù)之前停止),或start-first(首先啟動(dòng)新任務(wù),并且正在運(yùn)行的任務(wù)短暫重疊)(默認(rèn)stop-first)。
  • update_config 配置應(yīng)如何更新服務(wù)。用于配置滾動(dòng)更新。
    1. parallelism:一次更新的容器數(shù)量。
    2. delay:更新一組容器之間的等待時(shí)間。
    3. failure_action: 如果更新失敗怎么辦。continuerollback或者pause (默認(rèn):pause)。
    4. monitor:每次任務(wù)更新后監(jiān)控失敗的持續(xù)時(shí)間(ns|us|ms|s|m|h)(默認(rèn) 5s)注意:設(shè)置為 0 將使用默認(rèn) 5s。
    5. max_failure_ratio:更新期間可容忍的故障率。
    6. order:更新期間的操作順序。stop-first(舊任務(wù)在開(kāi)始新任務(wù)之前停止),或start-first(新任務(wù)首先啟動(dòng),并且正在運(yùn)行的任務(wù)短暫重疊)(默認(rèn)stop-first


    十二、devices

    設(shè)備映射列表。使用與--devicedocker 客戶端創(chuàng)建選項(xiàng)格式相同。

    devices:
      - "/dev/ttyUSB0:/dev/ttyUSB0"

    十三、dns

    自定義 DNS 服務(wù)器。可以是單個(gè)值或列表。

    dns: 8.8.8.8
    dns:
      - 8.8.8.8
      - 9.9.9.9

    十四、dns_search

    自定義 DNS 搜索域。可以是單個(gè)值或列表。

    dns_search: example.com
    dns_search:
      - dc1.example.com
      - dc2.example.com

    十五、entrypoint

    在 Dockerfile 中有一個(gè)指令叫做ENTRYPOINT指令,用于運(yùn)行程序。在docker-compose.yml中可以定義覆蓋 Dockerfile 中定義的 entrypoint:

    entrypoint: /code/entrypoint.sh
    entrypoint: ["php", "-d", "memory_limit=-1", "vendor/bin/phpunit"]

    十六、env_file

    從文件添加環(huán)境變量。可以是單個(gè)值或列表。

    如果您使用指定了 Compose 文件docker-compose -f FILE,則其中的路徑 env_file相對(duì)于該文件所在的目錄。

    environment 聲明的環(huán)境變量會(huì)覆蓋這些值——即使這些值是空的或未定義的。

    env_file: .env
    env_file:
      - ./common.env
      - ./apps/web.env
      - /opt/runtime_opts.env

    十七、environment

    添加環(huán)境變量。您可以使用數(shù)組或字典。任何布爾值(true、false、yes、no)都需要用引號(hào)括起來(lái),以確保它們不會(huì)被 YML 解析器轉(zhuǎn)換為 True 或 False。

    一般 arg 標(biāo)簽的變量?jī)H用在構(gòu)建過(guò)程中。而environment和 Dockerfile 中的ENV指令一樣會(huì)把變量一直保存在鏡像、容器中,類(lèi)似docker run -e的效果

    environment:
      RACK_ENV: development
      SHOW: 'true'
      SESSION_SECRET:
    
    environment:
      - RACK_ENV=development
      - SHOW=true
      - SESSION_SECRET

    十八、expose

    暴露端口,但不映射到宿主機(jī),只被連接的服務(wù)訪問(wèn)。這個(gè)標(biāo)簽與 Dockerfile 中的EXPOSE指令一樣,用于指定暴露的端口,但是只是作為一種參考,實(shí)際上docker-compose.yml的端口映射還得ports這樣的標(biāo)簽。

    十九、external_links

    鏈接到 docker-compose.yml 外部的容器,甚至 并非 Compose 項(xiàng)目文件管理的容器。

    external_links:
      - redis_1
      - project_db_1:mysql
      - project_db_1:postgresql

    二十、extra_hosts

    添加主機(jī)名映射。使用與 docker 客戶端--add-host類(lèi)似。

    extra_hosts:
      - "somehost:162.242.195.82"
      - "otherhost:50.31.209.229"

    會(huì)往/etc/hosts文件中添加一些記錄,啟動(dòng)之后查看容器內(nèi)部 hosts可以看到:

    162.242.195.82  somehost
    50.31.209.229   otherhost

    二十一、healthcheck

    配置運(yùn)行的檢查以確定此服務(wù)的容器是否“健康”。

    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s

    intervaltimeout 和 start_period都是持續(xù)時(shí)間。test必須是字符串或列表。如果是列表,則第一項(xiàng)必須是NONE,CMDCMD-SHELL。如果是字符串,則相當(dāng)于指定CMD-SHELL后跟該字符串。

    # Hit the local web app
    test: ["CMD", "curl", "-f", "http://localhost"]
    test: ["CMD-SHELL", "curl -f http://localhost || exit 1"]
    test: curl -f https://localhost || exit 1

    如果需要禁用鏡像的所有檢查項(xiàng)目,可以使用disable:true,相當(dāng)于test:["NONE"]

    healthcheck:
      disable: true 

    二十二、image

    從指定的鏡像中啟動(dòng)容器,可以是存儲(chǔ)倉(cāng)庫(kù)、標(biāo)簽以及鏡像 ID

    二十三、init

    在容器內(nèi)運(yùn)行一個(gè) init 來(lái)轉(zhuǎn)發(fā)信號(hào)和取得進(jìn)程。將此選項(xiàng)設(shè)置true為服務(wù)啟用此功能。

    version: "3.9"
    services:
      web:
        image: alpine:latest
        init: true

    二十四、isolation

    指定容器的隔離技術(shù)。在 Linux 上,唯一支持的值是default。在 Windows 上,可接受的值為defaultprocesshyperv

    二十五、labels

    使用 Docker 標(biāo)簽將元數(shù)據(jù)添加到容器,可以使用數(shù)組或字典。與 Dockerfile 中的LABELS類(lèi)似:

    labels:
      - "com.example.description=Accounting webapp"
      - "com.example.department=Finance"
      - "com.example.label-with-empty-value"
    
    labels:
      com.example.description: "Accounting webapp"
      com.example.department: "Finance"
      com.example.label-with-empty-value: ""

    二十六、links

    鏈接到另一個(gè)服務(wù)中的容器。指定服務(wù)名稱和鏈接別名 ("SERVICE:ALIAS"),或僅指定服務(wù)名稱。

    它們不需要啟用服務(wù)進(jìn)行通信 - 默認(rèn)情況下,任何服務(wù)都可以以該服務(wù)的名稱訪問(wèn)任何其他服務(wù)。在以下示例中,web可以訪問(wèn)db,并且設(shè)置別名為database

    version: "3.9"
    services:
    
      web:
        build: .
        links:
          - "db:database"
      db:
        image: postgres

    二十七、logging

    日志記錄配置。

    version: "3.9"
    services:
      some-service:
        image: some-service
        logging:
          driver: "json-file"
          options:
            max-size: "200k"
            max-file: "10"
    network_mode

    二十八、network_mode

    網(wǎng)絡(luò)模式。使用與 docker 客戶端--network相同,可以使用特殊形式service:[service name]

    network_mode: "bridge"
    network_mode: "host"
    network_mode: "none"
    network_mode: "service:[service name]"
    network_mode: "container:[container name/id]"


    二十九、pid

    將 PID 模式設(shè)置為主機(jī) PID 模式。這會(huì)在容器和主機(jī)操作系統(tǒng)之間共享 PID 地址空間。使用此標(biāo)志啟動(dòng)的容器可以訪問(wèn)和操作裸機(jī)命名空間中的其他容器,反之亦然。

    pid: "host"

    三十、ports

    暴露端口。

    簡(jiǎn)短語(yǔ)法

    共有三種寫(xiě)法:

    • 指定兩個(gè)端口 ( HOST:CONTAINER)
    • 僅指定容器端口(為主機(jī)端口選擇了一個(gè)臨時(shí)主機(jī)端口)。
    • 指定要綁定到兩個(gè)端口的主機(jī) IP 地址(默認(rèn)為 0.0.0.0,表示所有接口):( IPADDR:HOSTPORT:CONTAINERPORT)。如果 HOSTPORT 為空(例如127.0.0.1::80),則會(huì)選擇一個(gè)臨時(shí)端口來(lái)綁定到主機(jī)上。
    ports:
      - "3000"
      - "3000-3005"
      - "8000:8000"
      - "9090-9091:8080-8081"
      - "49100:22"
      - "127.0.0.1:8001:8001"
      - "127.0.0.1:5000-5010:5000-5010"
      - "127.0.0.1::5000"
      - "6060:6060/udp"
      - "12400-12500:1240"

    長(zhǎng)語(yǔ)法

    • target: 容器內(nèi)的端口
    • published: 公開(kāi)的端口
    • protocol:端口協(xié)議(tcpudp
    • modehost用于在每個(gè)節(jié)點(diǎn)上發(fā)布主機(jī)端口,或ingress用于負(fù)載平衡的群模式端口。
    ports:
      - target: 80
        published: 8080
        protocol: tcp
        mode: host

    三十一、profiles

    允許通過(guò)有選擇地啟用服務(wù)來(lái)針對(duì)各種用途和環(huán)境調(diào)整 Compose 應(yīng)用程序模型。這是通過(guò)將每個(gè)服務(wù)分配給單個(gè)或多個(gè)配置文件來(lái)實(shí)現(xiàn)的。如果未分配,則始終啟動(dòng)該服務(wù),但如果已分配,則僅在激活配置文件時(shí)才啟動(dòng)。

    這允許人們?cè)趩蝹€(gè)docker-compose.yml文件中定義額外的服務(wù),這些服務(wù)應(yīng)該只在特定場(chǎng)景中啟動(dòng),例如用于調(diào)試或開(kāi)發(fā)任務(wù)。

    profiles: ["frontend", "debug"]
    profiles:
      - frontend
      - debug

    三十二、restart

    no是默認(rèn)的重啟策略,在任何情況下都不會(huì)重啟容器。當(dāng)always指定時(shí),容器總是重新啟動(dòng)。on-failure如果退出代碼指示失敗錯(cuò)誤,則該策略會(huì)重新啟動(dòng)容器。unless-stopped總是重新啟動(dòng)容器,除非容器停止(手動(dòng)或其他方式)。

    restart: "no"
    restart: always
    restart: on-failure
    restart: unless-stopped

    三十三、secrets

    為每個(gè)服務(wù)機(jī)密授予相應(yīng)的訪問(wèn)權(quán)限

    簡(jiǎn)短語(yǔ)法

    簡(jiǎn)短的語(yǔ)法僅指定機(jī)密名稱。

    以下示例授予redis服務(wù)對(duì)my_secretmy_other_secret機(jī)密的訪問(wèn)權(quán)限。./my_secret.txt文件的內(nèi)容被設(shè)置為 my_secret,my_other_secret被定義為外部機(jī)密,這意味著它已經(jīng)在Docker中定義,無(wú)論是通過(guò)運(yùn)行docker secret create命令還是通過(guò)另一個(gè)堆棧部署,都不會(huì)重新創(chuàng)建。如果外部機(jī)密不存在,堆棧部署將失敗并顯示secret not found錯(cuò)誤。

    version: "3.9"
    services:
      redis:
        image: redis:latest
        deploy:
          replicas: 1
        secrets:
          - my_secret
          - my_other_secret
    secrets:
      my_secret:
        file: ./my_secret.txt
      my_other_secret:
        external: true

    長(zhǎng)語(yǔ)法

    • source:定義機(jī)密標(biāo)識(shí)符。
    • target:要掛載在/run/secrets/服務(wù)的任務(wù)容器中的文件的名稱,默認(rèn)是 source。
    • uidgid/run/secrets/在服務(wù)的任務(wù)容器中擁有文件的數(shù)字 UID 或 GID 。
    • mode:要掛載在/run/secrets/ 服務(wù)的任務(wù)容器中的文件的權(quán)限,以八進(jìn)制表示法。例如,0444 代表可讀。

    下面的示例表示將my_secret 命名為redis_secret,模式為0440(組可讀),和用戶組為103。該redis服務(wù)無(wú)權(quán)訪問(wèn)該my_other_secret機(jī)密。

    version: "3.9"
    services:
      redis:
        image: redis:latest
        deploy:
          replicas: 1
        secrets:
          - source: my_secret
            target: redis_secret
            uid: '103'
            gid: '103'
            mode: 0440
    secrets:
      my_secret:
        file: ./my_secret.txt
      my_other_secret:
        external: true

    一級(jí)secrets詳細(xì)配置:

    • file:使用指定路徑中的文件內(nèi)容創(chuàng)建機(jī)密。
    • external:如果設(shè)置為 true,則指定此機(jī)密已創(chuàng)建。Docker 不會(huì)嘗試創(chuàng)建它,如果它不存在, 會(huì)報(bào)錯(cuò)secret not found
    • name:Docker 中秘密對(duì)象的名稱。此字段可用于引用包含特殊字符的機(jī)密。
    • template_driver:要使用的模板驅(qū)動(dòng)程序的名稱,它控制是否以及如何將機(jī)密負(fù)載評(píng)估為模板。如果未設(shè)置驅(qū)動(dòng)程序,則不使用模板。當(dāng)前支持的唯一驅(qū)動(dòng)程序是golang,它使用golang

    在本示例中,my_first_secret<stack_name>_my_first_secret 部署堆棧時(shí)創(chuàng)建 ,并且my_second_secret已存在于 Docker 中。

    secrets:
      my_first_secret:
        file: ./secret_data
      my_second_secret:
        external: true 

    三十四、security_opt

    為每個(gè)容器覆蓋默認(rèn)的標(biāo)簽。簡(jiǎn)單說(shuō)來(lái)就是管理全部服務(wù)的標(biāo)簽,比如設(shè)置全部服務(wù)的 user 標(biāo)簽值為USER

    security_opt:
      - label:user:USER
      - label:role:ROLE 

    三十五、stop_grace_period

    指定在嘗試停止容器時(shí)等待多長(zhǎng)時(shí)間。

    在docker stop命令執(zhí)行的時(shí)候,會(huì)先向容器中的進(jìn)程發(fā)送系統(tǒng)信號(hào)SIGTERM,然后等待容器中的應(yīng)用程序終止執(zhí)行。如果等待時(shí)間達(dá)到設(shè)定的超時(shí)時(shí)間,或者默認(rèn)的10秒,會(huì)繼續(xù)發(fā)送SIGKILL的系統(tǒng)信號(hào)強(qiáng)行kill掉進(jìn)程。

    在容器中的應(yīng)用程序,可以選擇忽略和不處理SIGTERM信號(hào),不過(guò)一旦達(dá)到超時(shí)時(shí)間,程序就會(huì)被系統(tǒng)強(qiáng)行kill掉,因?yàn)镾IGKILL信號(hào)是直接發(fā)往系統(tǒng)內(nèi)核的,應(yīng)用程序沒(méi)有機(jī)會(huì)去處理它。

    stop_grace_period: 1s

    默認(rèn)情況下,stop在發(fā)送 SIGKILL 之前等待容器退出 10 秒。

    三十六、stop_signal

    設(shè)置一個(gè)替代信號(hào)來(lái)停止容器。默認(rèn)情況下stop使用 SIGTERM。使用stop_signal設(shè)置替代信號(hào)來(lái)stop

    stop_signal: SIGUSR1

    三十七、sysctls

    在容器中設(shè)置的內(nèi)核參數(shù),可以為數(shù)組或字典

    sysctls:
      net.core.somaxconn: 1024
      net.ipv4.tcp_syncookies: 0

    三十八、tmpfs

    在容器內(nèi)掛載一個(gè)臨時(shí)文件系統(tǒng)。可以是單個(gè)值或列表。

    tmpfs: /run
    tmpfs:
      - /run
      - /tmp

    三十九、ulimits

    設(shè)置當(dāng)前進(jìn)程以及其子進(jìn)程的資源使用量,覆蓋容器的默認(rèn)限制,可以單一地將限制值設(shè)為一個(gè)整數(shù),也可以將soft/hard限制指定為映射

    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000

    四十、userns_mode

    如果 Docker 守護(hù)程序配置了用戶命名空間,則禁用此服務(wù)的用戶命名空間。

    userns_mode: "host"

    四十一、volumes

    掛載一個(gè)目錄或者一個(gè)已存在的數(shù)據(jù)卷容器,可以直接使用HOST:CONTAINER這樣的格式,或者使用HOST:CONTAINER:ro這樣的格式,后者對(duì)于容器來(lái)說(shuō),數(shù)據(jù)卷是只讀的,這樣可以有效保護(hù)宿主機(jī)的文件系統(tǒng)

    您可以將主機(jī)路徑掛載為單個(gè)服務(wù)定義的一部分,無(wú)需在一級(jí)volumes鍵中定義它。

    但是,如果您想在多個(gè)服務(wù)中重用一個(gè)卷,則需要在一級(jí)volumes 中定義一個(gè)命名卷。

    如下實(shí)例,web 服務(wù)使用命名卷 (mydata),以及為單個(gè)服務(wù)定義的綁定安裝(dbservice下的第一個(gè)路徑volumes)。db服務(wù)還使用名為dbdatadbservice下的第二個(gè)路徑volumes)的命名卷,使用了舊字符串格式定義它以安裝命名卷。命名卷必須列在頂級(jí)volumes鍵下。

    version: "3.9"
    services:
      web:
        image: nginx:alpine
        volumes:
          - type: volume
            source: mydata
            target: /data
            volume:
              nocopy: true
          - type: bind
            source: ./static
            target: /opt/app/static
    
      db:
        image: postgres:latest
        volumes:
          - "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
          - "dbdata:/var/lib/postgresql/data"
    
    volumes:
      mydata:
      dbdata:

    簡(jiǎn)短語(yǔ)法

    簡(jiǎn)短語(yǔ)法使用通用[SOURCE:]TARGET[:MODE]格式,其中 SOURCE可以是主機(jī)路徑或卷名。TARGET是安裝卷的容器路徑。標(biāo)準(zhǔn)模式ro用于只讀和rw讀寫(xiě)(默認(rèn))。

    您可以在主機(jī)上掛載一個(gè)相對(duì)路徑,該路徑相對(duì)于正在使用的 Compose 配置文件的目錄展開(kāi)。相對(duì)路徑應(yīng)始終以.或開(kāi)頭..

    volumes:
      # Just specify a path and let the Engine create a volume
      - /var/lib/mysql
    
      # Specify an absolute path mapping
      - /opt/data:/var/lib/mysql
    
      # Path on the host, relative to the Compose file
      - ./cache:/tmp/cache
    
      # User-relative path
      - ~/configs:/etc/configs/:ro
    
      # 命名卷
      - datavolume:/var/lib/mysql

    長(zhǎng)語(yǔ)法

    • type: 安裝類(lèi)型, bind,tmpfsnpipe
    • source: 安裝源、主機(jī)上用于綁定安裝的路徑或在頂級(jí)volumes 中定義的卷的名稱 。不適用于 tmpfs 掛載。
    • target:安裝卷的容器中的路徑
    • read_only: 將卷設(shè)置為只讀的標(biāo)志
    • bind: 配置額外的綁定選項(xiàng)
    1. propagation:用于綁定的傳播模式
  • volume: 配置額外的選項(xiàng)
    1. nocopy: 創(chuàng)建卷時(shí)禁用從容器復(fù)制數(shù)據(jù)的標(biāo)志
  • tmpfs: 配置額外的 tmpfs 選項(xiàng)
    1. size:tmpfs 掛載的大小(以字節(jié)為單位)
    version: "3.9"
    services:
      web:
        image: nginx:alpine
        ports:
          - "80:80"
        volumes:
          - type: volume
            source: mydata
            target: /data
            volume:
              nocopy: true
          - type: bind
            source: ./static
            target: /opt/app/static
    
    networks:
      webnet:
    
    volumes:
      mydata:


    一級(jí) Volume 詳細(xì)配置:

    • driver 指定該卷應(yīng)使用哪個(gè)卷驅(qū)動(dòng)程序
    • driver_opts 將選項(xiàng)列表指定為鍵值對(duì)以傳遞給此卷的驅(qū)動(dòng)程序
    volumes:
      example:
        driver_opts:
          type: "nfs"
          o: "addr=10.40.0.199,nolock,soft,rw"
          device: ":/docker/example"
    • external 如果設(shè)置為true,則指定該卷是在 Compose 之外創(chuàng)建的
    • labels 添加元數(shù)據(jù)
    • name 為此卷設(shè)置自定義名稱
    version: "3.9"
    volumes:
      data:
        name: my-app-data


    四十二、變量置換

    你可以使用 $VARIABLE 或者 ${VARIABLE} 來(lái)置換變量

    • ${VARIABLE:-default}VARIABLE在環(huán)境中未設(shè)置或?yàn)榭諘r(shí)設(shè)置為default。
    • ${VARIABLE-default}僅當(dāng)VARIABLE在環(huán)境中未設(shè)置時(shí)才設(shè)置為default。
    • ${VARIABLE:?err}退出并顯示一條錯(cuò)誤消息,其中包含環(huán)境中的errif VARIABLE未設(shè)置或?yàn)榭铡?/span>
    • ${VARIABLE?err}退出并顯示一條錯(cuò)誤消息,其中包含errif VARIABLE在環(huán)境中未設(shè)置。
    • 如果想使用一個(gè)不被compose處理的變量,可用使用 $$

    【摘抄于網(wǎng)絡(luò):https://zhuanlan.zhihu.com/p/387840381】

    469人通關(guān)ZCCT在線認(rèn)證

    日前,ZStack面向企業(yè)IT人士、云計(jì)算愛(ài)好者,疫情期間免費(fèi)開(kāi)放ZCCT在線認(rèn)證,并提供線上實(shí)驗(yàn)資源幫助學(xué)員完成上機(jī)實(shí)踐考試!截至當(dāng)前,已經(jīng)有600多名學(xué)員參與了培訓(xùn),并累計(jì)頒發(fā)469張ZCCT證書(shū)!

    為什么要考ZCCT證書(shū)?

    ZStack:從知識(shí)儲(chǔ)備來(lái)講,區(qū)別于OpenStack,ZStack是完全國(guó)產(chǎn)自研的開(kāi)源IaaS架構(gòu)。通過(guò)ZCCT在線認(rèn)證,可以快速掌握Z(yǔ)Stack云平臺(tái)安裝部署、運(yùn)維交付、云計(jì)算技術(shù)及銷(xiāo)售技能等知識(shí)。從職場(chǎng)加分項(xiàng)來(lái)看,目前已經(jīng)有超過(guò)1000家企業(yè)用戶選擇了ZStack云平臺(tái)作為云基礎(chǔ)架構(gòu),擁有ZCCT證書(shū)可以作為求職面試的加分項(xiàng)!

    在ZCCT在線認(rèn)證通關(guān)的路上,我們建立了“ZStack中國(guó)社區(qū)QQ三群”,群內(nèi)的技術(shù)同仁們將即時(shí)答疑學(xué)習(xí)互助!同學(xué)們可以掃描下方二維碼加入:

    以下我們節(jié)選了ZStack QQ社區(qū)群學(xué)員經(jīng)常遇到的問(wèn)題,為所有正在通關(guān)ZCCT的學(xué)員提供參考!

    ZCCT在線認(rèn)證Q&A 第二期

    Q1:在自有的虛擬化環(huán)境搭建ZStack,請(qǐng)務(wù)必開(kāi)啟嵌套虛擬化支持

    A1:請(qǐng)?jiān)贙VM、VMWARE、VirtualBox、Hyperv、XEN等其他虛擬化平臺(tái)的CPU處理器設(shè)置里面開(kāi)啟Intel VirtualTechnology或AMD SVM選項(xiàng),或(Intel VT-x或AMV-v選項(xiàng))。

    否則添加物理機(jī)會(huì)提示ERROR:could not 'kvm_intel':Operation not supported stdout

    Q2:iSCSI加載集群失敗

    A2:

    iptables -F關(guān)閉防火墻,避免連接時(shí)連接不上

    lsblk檢查磁盤(pán)使用是否已存在/dev/sda設(shè)備

    檢查防火墻是否攔截了3260端口可通過(guò)此條命令查看:netstat -tulpn | grep 3260

    “disksnumber by /dev/disk not equal to iscsiadm”此類(lèi)報(bào)錯(cuò)表示磁盤(pán)號(hào)不等于iscsiadm發(fā)現(xiàn)的,導(dǎo)致添加失敗。檢查磁盤(pán)是否分區(qū)將系統(tǒng)多余的分區(qū)刪除重新加載集群即可。

    Q3:關(guān)于導(dǎo)出日志

    A3:使用Linux跳板機(jī)在終端執(zhí)行命令從管理節(jié)點(diǎn)拷貝日志到跳板機(jī)scp $MNIP:/usr/local/zstack/apache-tomcat/logs/management-server.log /home/test MNIP請(qǐng)輸入正確的管理節(jié)點(diǎn)IP,接著通過(guò)瀏覽器從/home/test/management-server.log 選擇日志上傳。

    Q4:關(guān)于文件的路徑

    A4:管理節(jié)點(diǎn)日志路徑:/usr/local/zstack/apache-tomcat/logs/management-server.log

    Q5:關(guān)于線上實(shí)驗(yàn)資源有效期

    A5:線上實(shí)驗(yàn)資源有效期自發(fā)放之日起為3天,理論考試通關(guān)后請(qǐng)?jiān)诖稳?8:00左右登錄注冊(cè)郵箱,查收實(shí)驗(yàn)環(huán)境信息,并根據(jù)實(shí)驗(yàn)指導(dǎo)手冊(cè),完成實(shí)踐考試!線上資源過(guò)期的學(xué)員,請(qǐng)使用注冊(cè)郵箱主動(dòng)發(fā)送郵件到zcct@zstack.io申請(qǐng)實(shí)驗(yàn)資源。

    Q6:注意事項(xiàng)

    A6:

    注冊(cè)時(shí),請(qǐng)?zhí)峁┱_的郵箱和真實(shí)的姓名,證書(shū)會(huì)通過(guò)注冊(cè)郵箱發(fā)送給大家。

    請(qǐng)以注冊(cè)郵箱咨詢相關(guān)問(wèn)題,如果賬號(hào)不一致,則無(wú)法查詢相關(guān)考試信息。

    郵件主題請(qǐng)說(shuō)明具體事項(xiàng),“理論考試通過(guò),3天未收到實(shí)驗(yàn)資源”,“實(shí)驗(yàn)考試通過(guò),3天未收到證書(shū)”。(郵件接收地址:zcct@zstack.io)

    注意線上實(shí)驗(yàn)環(huán)境有效期3天,理論考試通過(guò)后請(qǐng)?jiān)?天內(nèi)完成線上實(shí)踐考試,過(guò)期需要自己主動(dòng)發(fā)送郵件重新申請(qǐng)。(參考本條第3點(diǎn))

    如果理論考試通過(guò),但是視頻未全部看完,請(qǐng)看完所有視頻,并通過(guò)理論考試再進(jìn)行實(shí)驗(yàn)。

    Q7:更多Q&A

    A7:點(diǎn)擊https://www.zstack.io/help/FAQ/,輸入問(wèn)題關(guān)鍵詞檢索獲取答案。如果檢索失敗,可以加入ZStack社區(qū)三群(QQ群號(hào):741300236),與群里技術(shù)大牛即時(shí)互動(dòng),一起學(xué)習(xí)互助!

    二 如何參與ZCCT在線認(rèn)證?

    ZStack在疫情期間繼續(xù)免費(fèi)開(kāi)放ZCCT在線認(rèn)證,疫情不結(jié)束,ZCCT在線認(rèn)證不收費(fèi)!!

    通關(guān)步驟只需4步:視頻學(xué)習(xí)》理論考試》實(shí)踐考試》頒發(fā)證書(shū)!

    視頻學(xué)習(xí)和理論考試完成的學(xué)員,次日18:00左右登錄注冊(cè)郵箱,可以獲取線上實(shí)驗(yàn)資源繼續(xù)完成上機(jī)實(shí)踐考試!

    快捷通道1:

    https://www.zstack.io/account/site/login

    登陸ZStack賬號(hào),直達(dá)課程系統(tǒng)

    快捷通道2:

    https://www.zstack.io/training/certification_training/

    初級(jí)認(rèn)證下點(diǎn)擊“立即開(kāi)通”,進(jìn)入我的課程系統(tǒng)

    ZStack社區(qū)QQ群助力:

    學(xué)習(xí)的過(guò)程中,有問(wèn)題可以加入ZStack社區(qū)三群(QQ群號(hào):741300236),群里技術(shù)大牛將即時(shí)答疑,一起學(xué)習(xí)互助!

    招募招募!ZStack高校合作伙伴火熱招募中!

    歡迎廣大有云計(jì)算專業(yè)的高校,加入ZStack高校合作伙伴聯(lián)盟,共同開(kāi)設(shè)云計(jì)算專業(yè)線上教學(xué)和實(shí)驗(yàn)課程!優(yōu)秀學(xué)員優(yōu)先推薦就業(yè)機(jī)會(huì)!

    山河有恙,匹夫有責(zé)!ZStack作為一家有責(zé)任感的國(guó)產(chǎn)云平臺(tái)公司,疫情期間,用實(shí)際行動(dòng)抗擊疫情、賦能伙伴!歡迎廣大合作伙伴按如下路徑參與:

    1.請(qǐng)登錄ZStack官網(wǎng)注冊(cè)賬號(hào),申請(qǐng)成為ZStack的認(rèn)證或授權(quán)合作伙伴,獲取一對(duì)一的賦能幫助!

    https://www.zstack.io/account/site/signup-partner

    完成注冊(cè)后,如需獲取專業(yè)的行業(yè)解決方案或案例,請(qǐng)掃碼加入ZStack釘釘伙伴培訓(xùn)賦能群,探討交流!

    2.如對(duì)項(xiàng)目實(shí)施和運(yùn)維技能感興趣,可登錄ZStack官網(wǎng)(培訓(xùn)-認(rèn)證培訓(xùn)欄目)開(kāi)通ZCCT在線認(rèn)證,如需互助答疑,請(qǐng)掃碼加入ZStack中國(guó)社區(qū)QQ三群,一起在云計(jì)算技術(shù)領(lǐng)域鉆研進(jìn)階!

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有