bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Docker系列13:容器編排(1)

一、容器編排基礎(chǔ)

1、容器編排概念

  • 可以指定各個容器中的程序是有依賴關(guān)系的
  • 比如有個web服務(wù)必須在MySQL正常的情況下,才能運行,那么這個時候就是web容器是依賴mysql容器的,只有mysql容器正常啟動,web容器才能啟動。

    2、容器編排工具

  • docker compose
  • k8s
  • k3s

    二、compose詳解

1、什么是compose

  • Docker Compose 將所管理的容器分為三層,分別是工程(project)、服務(wù)(service)、容器(container)
  • Docker Compose 運行目錄下的所有文件(docker-compose.yml)組成一個工程,一個工程包含多個服務(wù),每個服務(wù)中定義了容器運行的鏡像、參數(shù)、依賴,一個服務(wù)可包括多個容器實例

2、安裝compse

方法1:用提供的這個conpose文件,將這個文件放到/usr/local/bin
Docker系列13:容器編排(1)
Docker系列13:容器編排(1)
方法2:用epel和extra源中的安裝包
1)配置yum源

成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、融安網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為融安等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

[root@host1 ~]# cat /etc/yum.repos.d/epel.repo 
[epel]
name=epel
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7Server/x86_64/
enabled=1
gpgcheck=0

2)安裝docker-compose

[root@host1 ~]# yum install docker-compose -y

3、compose參數(shù)詳解

先看一個dyml文件樣例
Docker系列13:容器編排(1)

參數(shù)1:build
  • build,它可以指定 Dockerfile 所在文件夾的路徑。Compose 將會利用它自動構(gòu)建這個鏡像,然后使用這個鏡像啟動服務(wù)容器。
  • 也可以是相對路徑,只要上下文確定就可以讀取到 Dockerfile。
    ?
    參數(shù)2:context
  • 這個是用來指定dockerfile文件的工作目錄的
  • 這是build的一個子選項
參數(shù)3:dockerfile
  • 指定具體的dockerfile來做鏡像
  • 這是build的一個子選項
參數(shù)4:ARGS
  • 設(shè)置變量,這些變量僅僅在build的過程中才會用到
  • 這是build的一個子選項
參數(shù)5:labels
  • 這是build的一個子選項
  • 用來指定build過程中的元數(shù)據(jù)
參數(shù)6:shm_size
  • 這是build的一個子選項,控制基于build構(gòu)建的鏡像的參數(shù)配置
  • /dev/shm是linux中系統(tǒng)中物理內(nèi)存的映射,使用/dev/shm對文件操作的效率會高很多,我在優(yōu)化系統(tǒng)的時候,常用用到
參數(shù)7:command
  • 使用 command 可以覆蓋容器啟動后默認(rèn)執(zhí)行的命令。
    ?
    參數(shù)8:image
  • image 則是指定服務(wù)的鏡像名稱或鏡像 ID。
  • 如果鏡像在本地不存在,Compose 將會嘗試?yán)∵@個鏡像。
    image: redis
    image: ubuntu:14.04
    image: tutum/influxdb
    image: example-registry.com:4000/postgresql
    image: a4bc65fd
參數(shù)9:container_name
  • 可以使用這個標(biāo)簽指定容器名稱
參數(shù)10:depends_on
  • 這個標(biāo)簽解決了容器的依賴、啟動先后的問題
案例:下面容器會先啟動 redis 和 db 兩個服務(wù),最后才啟動 web 服務(wù):

Docker系列13:容器編排(1)

參數(shù)11:DNS
  • 指定DNS服務(wù)器的地址
    dns: 8.8.8.8
    dns:
    ?- 8.8.8.8
    ?- 9.9.9.9
參數(shù)12:dns_search
  • 設(shè)置搜索域
    dns_search: example.com
    dns_search:
    ?- dc1.example.com
    ?- dc2.example.com
參數(shù)13:tmpfs
  • 掛載臨時目錄到容器內(nèi)部
    tmpfs:
    ?- /run
    ?- /tmp
參數(shù)14:entrypoint
  • 用于覆蓋 Dockerfile 中的定義
    entrypoint:
    ? ?- php
    ? ?- -d
    ? ?- zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so
    ? ?- -d
    ? ?- memory_limit=-1
    ? ?- vendor/bin/phpunit

    ? ?

    參數(shù)15:env_file
  • docker-compose.yml 中可以定義一個專門存放變量的文件。
  • 如果通過 docker-compose -f FILE 指定了配置文件,則 env_file 中路徑會使用配置文件路徑。
  • 如果有變量名稱與 environment 指令沖突,則以后者為準(zhǔn)。
    env_file:
    ?- ./common.env
    ?- ./apps/web.env
    ?- /opt/secrets.env
參數(shù)16:environment
  • 這個標(biāo)簽的作用是設(shè)置鏡像變量,它可以保存變量到鏡像里面,也就是說啟動的容器也會包含這些變量設(shè)置,這是與 arg 最大的不同。
  • environment 和 Dockerfile 中的 ENV 指令一樣會把變量一直保存在鏡像、容器中,類似 docker run -e 的效果。
    
    environment:
    RACK_ENV: development
    SHOW: 'true'
    SESSION_SECRET:

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


#### 參數(shù)17:expose
* 這個標(biāo)簽與Dockerfile中的EXPOSE指令一樣,用于指定暴露的端口,但是只是作為一種參考
* 實際上docker-compose.yml的端口映射還得ports這樣的標(biāo)簽。

expose:

  • "3000"
  • "8000"
參數(shù)18:external_links
  • 為了使Compose能夠連接這些不在docker-compose.yml中定義的容器,external_links可以讓Compose項目里面的容器連接到那些項目配置外部的容器
    ?external_links:
    - redis_1
    - project_db_1:mysql
    - project_db_1:postgresql
參數(shù)19:extra_hosts
  • 添加主機名的標(biāo)簽,就是往/etc/hosts文件中添加一些記錄
    extra_hosts:
    - "somehost:162.242.195.82"
    - "otherhost:50.31.209.229"
標(biāo)簽20:labels
  • 向容器添加元數(shù)據(jù),和Dockerfile的LABEL指令一個意思
    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"
標(biāo)簽21:links
  • depends_on吧,那個標(biāo)簽解決的是啟動順序問題
  • 這個標(biāo)簽解決的是容器連接問題,與Docker client的--link一樣效果,會連接到其它服務(wù)中的容器。
    links:
    - db
    - db:database
    - redis
標(biāo)簽22:logging
  • 這個標(biāo)簽用于配置日志服務(wù)。
    logging:
    driver: syslog
    options:
    syslog-address: "tcp://192.168.0.42:123"
標(biāo)簽23:pid
  • 容器使用這個標(biāo)簽將能夠訪問和操縱其他容器和宿主機的名稱空間。
  • pid: "host":將PID模式設(shè)置為主機PID模式,跟主機系統(tǒng)共享進(jìn)程命名空間。
標(biāo)簽24:ports
  • 映射端口的標(biāo)簽。
  • 使用HOST:CONTAINER格式或者只是指定容器的端口,宿主機會隨機映射端口。
    ports:
    - "3000"
    - "8000:8000"
    - "49100:22"
    - "127.0.0.1:8001:8001"
  • 當(dāng)使用HOST:CONTAINER格式來映射端口時,如果你使用的容器端口小于60你可能會得到錯誤得結(jié)果
  • 因為YAML將會解析xx:yy這種數(shù)字格式為60進(jìn)制。所以建議采用字符串格式。
標(biāo)簽25:security_opt
  • 為每個容器覆蓋默認(rèn)的標(biāo)簽。簡單說來就是管理全部服務(wù)的標(biāo)簽。比如設(shè)置全部服務(wù)的user標(biāo)簽值為USER。
    security_opt:
    ?- label:user:USER
    ?- label:role:ROLE
標(biāo)簽26:stop_signal
  • 設(shè)置另一個信號來停止容器。
  • 在默認(rèn)情況下使用的是SIGTERM停止容器。
標(biāo)簽27:volumes
  • 掛載一個目錄或者一個已存在的數(shù)據(jù)卷容器
  • 可以直接使用 [HOST:CONTAINER] 這樣的格式,或者使用 [HOST:CONTAINER:ro] 這樣的格式,后者的數(shù)據(jù)卷是只讀的
  • Compose的數(shù)據(jù)卷指定路徑可以是相對路徑,使用 . 或者 .. 來指定相對目錄。
標(biāo)簽28:volumes_from
  • 從其它容器或者服務(wù)掛載數(shù)據(jù)卷
  • 可選的參數(shù)是 :ro或者 :rw,前者表示容器只讀,后者表示容器對數(shù)據(jù)卷是可讀可寫的
  • 默認(rèn)情況下是可讀可寫的。
    volumes_from:
    ?- service_name
    ?- service_name:ro
    ?- container:container_name
    ?- container:container_name:rw
    標(biāo)簽29:cap_add, cap_drop
  • 添加或刪除容器的內(nèi)核功能
標(biāo)簽30:cgroup_parent
  • 指定一個容器的父級cgroup。
標(biāo)簽31:devices
  • 設(shè)備映射列表。與Docker client的--device參數(shù)類似。
標(biāo)簽32:extends
  • 這個標(biāo)簽可以擴展另一個服務(wù),擴展內(nèi)容可以是來自在當(dāng)前文件,也可以是來自其他文件
  • 相同服務(wù)的情況下,后來者會有選擇地覆蓋原有配置。
    extends:
    file: common.yml
    ?service: webapp
    標(biāo)簽33:network_mode
  • 設(shè)置網(wǎng)絡(luò)模式
  • 與Docker client的--net參數(shù)類似,只是相對多了一個service:[service name] 的格式
    network_mode: "bridge"
    network_mode: "host"
    network_mode: "none"
    network_mode: "service:[service name]"
    network_mode: "container:[container name/id]"
    標(biāo)簽34:networks
    services:
    some-service:
    ?  networks:
    ? ? - some-network
    ? ? - other-network
    端口暴露問題
  • ports:暴露端口信息。使用:宿主:容器 (HOST:CONTAINER)格式或者僅僅指定容器的端口(宿主將會隨機選擇端口)都可以。
  • expose:暴露端口,但不映射到宿主機,只被連接的服務(wù)訪問。
關(guān)于控制啟動順序的問題
  • depends_on:表示服務(wù)之前的依賴關(guān)系,有兩個效果:
  • 1)docker-compose up,啟動web服務(wù)之前、啟動redis、db。
  • 2)docker-compose up web,啟動web容器時,檢查依賴depends_on的配置內(nèi)容,先啟動db和redis
    version: '2'
    services: 
    web:
    ? build: .
    ?  depends_on:
    ? ? ? - db
    ? ? ?- redis
    redis: ? 
    ? ? image: redis
    db: ? 
    ?  image: postgres

當(dāng)前題目:Docker系列13:容器編排(1)
文章位置:http://vcdvsql.cn/article48/gdgghp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管網(wǎng)站策劃網(wǎng)站收錄網(wǎng)站設(shè)計公司微信小程序用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司