久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Docker-compose(多容器編排工具)

 印度阿三17 2021-03-08

在學習使用docker-compose之前必須要了解YAML語言的用法。YAML語言是一種非常簡單的語言,,下篇會具體介紹,。

Docker-compose簡介

# Docker三劍客:
docker-compose # 多容器編排工具,基于 Yaml 格式資源清單
docker-swarm # 集群化管理器
docker-machine # 是安裝和管理 Docker 的工具,,創(chuàng)建具有docker服務的虛擬機的技術
# docker-compose介紹
docker-compose是docker官方的多容器編排工具,,用于定義和運行多容器 Docker 應用程序的工具。
# docker-compose使用步驟
使用 docker-compose.yml 定義構成應用程序的服務和環(huán)境,,這樣它們可以在隔離環(huán)境中一起運行
用docker-compose up 來啟動整個docker應用程序的運行

docker-compose安裝

$ http://get./#install-compose # 獲取下載地址
$ curl -L https://get./docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod  x /usr/local/bin/docker-compose

# 用Docker方式部署Seafile(云存儲)
$ https://cloud./published/seafile-manual-cn/home.md
# 安裝 docker-compose
# for CentOS
$ yum install docker-compose -y
# for Ubuntu
$ apt-get install docker-compose -y
# 下載并修改 docker-compose.yml
MySQL root 用戶的密碼 (MYSQL_ROOT_PASSWORD and DB_ROOT_PASSWD)
持久化存儲 MySQL 數據的 volumes 目錄 (volumes)
持久化存儲 Seafile 數據的 volumes 目錄 (volumes)
# 啟動 Seafile 服務
$ docker-compose up -d
# 瀏覽器上訪問http://seafile. 來打開 Seafile 主頁,。
# 注意:在 docker-compose.yml 文件所在的目錄下執(zhí)行以上命令。

ocker-compose常用命令

$ docker-compose version # 查看版本
$ docker-compose ps # 顯示所有容器信息
$ docker-compose restart # 重新啟動容器
$ docker-compose logs # 查看日志信息
$ docker-compose config -q # 驗證 yaml 配置文件是否正確
$ docker-compose start/stop # 啟動/停止容器
$ docker-compose up -d # 啟動容器項目
$ docker-compose pause # 暫停容器
$ docker-compose unpause # 恢復暫停
$ docker-compose rm # 刪除容器
$ docker-compose -f 路徑 選項 # 指定使用的 yaml 文件位置

Docker-compose 基本語法

version: '2'
services:
  web:
    image: dockercloud/hello-world
    ports:
      - 8080
    networks:
      - front-tier
      - back-tier
 
  redis:
    image: redis
    links:
      - web
    networks:
      - back-tier
 
  lb:
    image: dockercloud/haproxy
    ports:
      - 80:80
    links:
      - web
    networks:
      - front-tier
      - back-tier
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock 
 
networks:
  front-tier:
    driver: bridge
  back-tier:
driver: bridge

.yml文件配置文件詳解

1,、version

# 指定本yml一從的compose 哪個版本制定的,。

2,、image

services: #定義服務
  web: # web服務
    image: hello-world # 啟動服務使用的鏡像

# 指定容器運行的鏡像,,格式:
image: redis # 鏡像名稱
image: ubuntu:14.04 #鏡像:版本號
image: tutum/influxdb # 個人用戶級別的鏡像
image: example-registry.com:4000/postgresql # 非官方倉庫的鏡像
image: a4bc65fd # 鏡像ID

3,、build

服務除了可以基于指定的鏡像,還可以基于一份 "Dockerfile" ,,在使用 up 啟動之時執(zhí)行構建任務,,這個構建標簽就是 build,它可以指定 Dockerfile 所在文件夾的路徑,。Compose 將會利用它自動構建這個鏡像,,然后使用這個鏡像啟動服務容器
build: /path/to/build/dir/

也可以是相對路徑,只要上下文確定就可以讀取到 Dockerfile
build: ./dir

build:
  context: ../ # 描述當前的路徑信息
  dockerfile: path/of/Dockerfile # 文件位置
   args: # 指定輸入環(huán)境變量
    buildno: 1 # 環(huán)境變量
    password: secret # 環(huán)境變量
image: webapp:tag # 命名的鏡像名稱,,根據此名稱啟動

4、command

command: bundle exec thin -p 3000
# == 覆蓋容器啟動的默認命令,。
command: [bundle, exec, thin, -p, 3000]

5、container_name:<項目名稱><服務名稱><序號>

container_name: app # 指定自定義容器名稱,,而不是生成的默認名稱,。

6,、depends_on

# 設置依賴關系,,建立關聯(lián),優(yōu)先級啟動
version: '2'
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres

docker-compose up :以依賴性順序啟動服務,。在以下示例中,,先啟動 db 和 redis ,才會啟動 web,。
docker-compose up SERVICE :自動包含 SERVICE 的依賴項,。在以下示例中,docker-compose up web 還將創(chuàng)建并啟動 db 和 redis,。
docker-compose stop :按依賴關系順序停止服務,。在以下示例中,web 在 db 和 redis 之前停止,。

7、dns

# 自定義 DNS 服務器,,可以是單個值或列表的多個值,。
dns: 8.8.8.8

dns:
  - 8.8.8.8
  - 9.9.9.9
# 自定義 DNS 搜索域,??梢允菃蝹€值或列表。
dns_search: 
dns_search:
dc1.
dc2.

9,、tmpfs

# 在容器內安裝一個臨時文件系統(tǒng)??梢允菃蝹€值或列表的多個值,。
tmpfs: /run
tmpfs:
  - /run
  - /tmp

10,、 entrypoint

entrypoint: /code/entrypoint.sh #覆蓋容器默認的 entrypoint

11、env_file

env_file: .env
# 從文件添加環(huán)境變量,??梢允菃蝹€值或列表的多個值。

env_file: # 列表格式
  - ./common.env
  - ./apps/web.env
  - /opt/secrets.env

12,、environment:鏡像變量

# 添加環(huán)境變量。您可以使用數組或字典,、任何布爾值,,布爾值需要用引號引起來,以確保 YML 解析器不會將其轉換為 True 或 False,。
environment:
  RACK_ENV: development
  SHOW: 'true'
  SESSION_SECRET:
 
environment:
  - RACK_ENV=development
  - SHOW=true
  - SESSION_SECRET

13、expose

暴露端口的定義,,但不映射到宿主機,,只被連接的服務訪問。
僅可以指定內部端口為參數:
expose:
 - "3000"
 - "8000"

14,、 external_links:鏈接外部容器

external_links: # 將容器的地址注入到host文件里
 - redis_1
 - project_db_1:mysql # 添加別名
 - project_db_1:postgresql

15,、extra_hosts

# 添加主機名映射
extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"
# 會在此服務的內部容器中 /etc/hosts 創(chuàng)建一個具有 ip 地址和主機名的映射關系:
162.242.195.82 somehost
50.31.209.229 otherhost

16、labels

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:
 - db
 - db:database
 - redis

18,、 logging

# 服務的日志記錄配置。
logging:
  driver: syslog # 指定服務容器的日志記錄驅動程序,,默認值為json-file,,有以下三個選項 driver: “json-file”    driver: “syslog”     driver: “none”
  options:
    syslog-address: "tcp://192.168.0.42:123"

19,、pid

# 指定pid名稱
pid: "host"

20、port

# 指定端口的暴露
ports:
 - "3000"
 - "8000:8000"
 - "49100:22"
 - "127.0.0.1:8001:8001"

21,、security_opt

# 為每個容器覆蓋默認的標簽。簡單說來就是管理全部服務的標簽,。比如設置全部服務的user標簽值為USER,。
security_opt:
  - label:user:USER
  - label:role:ROLE

label:user:USER # 設置容器的用戶標簽
label:role:ROLE # 設置容器的角色標簽
label:type:TYPE # 設置容器的安全策略標簽
label:level:LEVEL # 設置容器的安全等級標簽

22,、 stop_signal

# 設置停止容器的替代信號。
stop_signal: SIGUSR1

23,、volumes

volumes:
  // 只是指定一個路徑,Docker 會自動在創(chuàng)建一個數據卷(這個路徑是容器內部的),。
  - /var/lib/mysql
 
  // 使用絕對路徑掛載數據卷
  - /opt/data:/var/lib/mysql
 
  // 以 Compose 配置文件為中心的相對路徑作為數據卷掛載到容器,。
  - ./cache:/tmp/cache
 
  // 使用用戶的相對路徑(~/ 表示的目錄是 /home/<用戶目錄>/ 或者 /root/)。
  - ~/configs:/etc/configs/:ro
 
  // 已經存在的命名的數據卷,。
  - datavolume:/var/lib/mysql

24、volumes_from

# 從其它容器或者服務掛載數據卷,,可選的參數是 :ro或者 :rw,,前者表示容器只讀,后者表示容器對數據卷是可讀可寫的,。默認情況下是可讀可寫的
volumes_from:
  - service_name
  - service_name:ro
  - container:container_name
  - container:container_name:rw

25、cap_add, cap_drop

# 添加或刪除容器擁有的宿主機的功能,。
cap_add:
  - ALL
 
cap_drop:
  - NET_ADMIN # 網絡管理員權限
  - SYS_ADMIN

26、extends

# 連接其他文件
extends:
  file: common.yml
  service: webapp

27,、network_mode

# 設置網絡模式。
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"

28,、 networks

# 配置容器連接的網絡,,引用頂級 networks 下的條目 。
services:
  some-service:
    networks:
     - some-network
     - other-network

29,、ulimits

# 覆蓋容器默認的ulimits
ulimits:
nproc: 65535
nofile:
soft: 20000
hard: 40000

30,、stop_grace_period

# 指定在容器無法處理 SIGTERM (或者任何 stop_signal 的信號),,等待多久后發(fā)送 SIGKILL 信號關閉容器
stop_grace_period: 1s # 等待 1 秒
stop_grace_period: 1m30s # 等待 1 分 30 秒
# 默認的等待時間是 10 秒。

31,、secrets

# 存儲敏感數據
version: “3.1”
services:

mysql:
image: mysql
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/my_secret
secrets:
- my_secret
secrets:
my_secret:
file: ./my_secret.txt

32,、restart

no:是默認的重啟策略,,在任何情況下都不會重啟容器。
always:容器總是重新啟動,。
on-failure:在容器非正常退出時(退出狀態(tài)非0),,才會重啟容器。
unless-stopped:在容器退出時總是重啟容器,,但是不考慮在Docker守護進程啟動時就已經停止了的容器
restart: “no”
restart: always
restart: on-failure
restart: unless-stopped
注:swarm 集群模式,,請改用 restart_policy。

33,、aliases

# 同一網絡上的其他容器可以使用服務名稱或此別名來連接到對應容器的服務

34,、healthcheck

用于檢測 docker 服務是否健康運行,。
healthcheck:
test: [“CMD”, “curl”, “-f”, “http://localhost”] # 設置檢測程序
interval: 1m30s # 設置檢測間隔
timeout: 10s # 設置檢測超時時間
retries: 3 # 設置重試次數
start_period: 40s # 啟動后,多少秒開始啟動檢測程序

34,、devices

指定設備映射列表。
devices:
“/dev/ttyUSB0:/dev/ttyUSB0”

35,、cgroup_parent

為容器指定父 cgroup 組,意味著將繼承該組的資源限制,。
cgroup_parent: m-executor-abcd

36、deploy

指定與服務的部署和運行有關的配置,。只在 swarm 模式下才會有用,。

37,、endpoint_mode:訪問集群服務的方式,。

endpoint_mode: vip
#Docker 集群服務一個對外的虛擬 ip。所有的請求都會通過這個虛擬 ip 到達集群服務內部的機器,。
endpoint_mode: dnsrr
#DNS 輪詢(DNSRR),。所有的請求會自動輪詢獲取到集群 ip 列表中的一個 ip 地址。

38,、labels

#在服務上設置標簽??梢杂萌萜魃系?labels(跟 deploy 同級的配置) 覆蓋 deploy 下的 labels,。

39,、mode

# 指定服務提供的模式,。

40,、replicated

#復制服務,,復制指定服務到集群的機器上。

41,、global

全局服務,,服務將部署至集群的每個節(jié)點,。

42,、replicas

mode 為 replicated 時,,需要使用此參數配置具體運行的節(jié)點數量。

43,、resources

配置服務器資源使用的限制,例如上例子,,配置 redis 集群運行需要的 cpu 的百分比 和 內存的占用,。避免占用資源過高出現異常。

44,、restart_policy:

# 配置如何在退出容器時重新啟動容器。
condition:可選 none,,on-failure 或者 any(默認值:any),。
delay:設置多久之后重啟(默認值:0)。
max_attempts:嘗試重新啟動容器的次數,超出次數,,則不再嘗試(默認值:一直重試),。
window:設置容器重啟超時時間(默認值:0)。

45,、rollback_config

#配置在更新失敗的情況下應如何回滾服務。
parallelism:一次要回滾的容器數,。如果設置為0,,則所有容器將同時回滾。
delay:每個容器組回滾之間等待的時間(默認為0s),。
failure_action:如果回滾失敗,,該怎么辦。其中一個 continue 或者 pause(默認pause),。
monitor:每個容器更新后,,持續(xù)觀察是否失敗了的時間 (ns|us|ms|s|m|h)(默認為0s)。
max_failure_ratio:在回滾期間可以容忍的故障率(默認為0),。
order:回滾期間的操作順序,。其中一個 stop-first(串行回滾),或者 start-first(并行回滾)(默認 stop-first ),。

46、update_config

# 配置應如何更新服務,,對于配置滾動更新很有用,。
parallelism:一次更新的容器數。
delay:在更新一組容器之間等待的時間,。
failure_action:如果更新失敗,,該怎么辦。其中一個 continue,,rollback 或者pause (默認:pause),。
monitor:每個容器更新后,持續(xù)觀察是否失敗了的時間 (ns|us|ms|s|m|h)(默認為0s),。
max_failure_ratio:在更新過程中可以容忍的故障率,。
order:回滾期間的操作順序。其中一個 stop-first(串行回滾),,或者 start-first(并行回滾)(默認stop-first),。
注:僅支持 V3.4 及更高版本。

Example

$ docker pull mysql:5.7 # 下載mysql鏡像
$ http://get./#install-compose # 獲取下載地址
$ curl -L https://get./docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod  x /usr/local/bin/docker-compose
$ vim docker-compose.yaml
version: '2'

services:
   db:
     image: mysql:5.7
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     restart: always
     ports:
       - "8000:80"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
$ chmod a x /usr/local/bin/docker-compose
$ docker-compose version # 查看版本
$ docker-compose up -d # 啟動容器項目(不能被docker run 其他啟動項目訪問的)
$ docker ps -a # 查看容器是否啟動
# 瀏覽器查看,,wordpress是否已經安裝
192.168.66.112 
來源:https://www./content-4-883751.html

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多