婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解Docker之Compose服務編排

詳解Docker之Compose服務編排

熱門標簽:撫順地圖標注 新余高德地圖標注怎么修改 大連400電話如何申請 電銷機器人怎么接線路 達亞電銷機器人官網 高德地圖標注好做嗎 外呼系統坐席費計入會計哪個科目 電銷機器人價值 如何分析地圖標注

Compose是Docker的服務編排工具,主要用來構建基于Docker的復雜應用,Compose 通過一個配置文件來管理多個Docker容器,非常適合組合使用多個容器進行開發的場景。

說明:Compose是Fig的升級版,Fig已經不再維護。Compose向下兼容Fig,所有fig.yml只需要更名為docker-compose.yml即可被Compose使用。

服務編排工具使得Docker應用管理更為方便快捷。 Compose網站:https://docs.docker.com/compose/

安裝Compose:

# 方法一:
$ curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

# Linux下等效于
$ curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose; chmod +x /usr/local/bin/docker-compose

# 方法二:使用pip安裝,版本可能比較舊
$ yum install python-pip python-dev
$ pip install docker-compose

# 方法三:作為容器安裝
$ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

# 方法四:離線安裝
# 下載[docker-compose-Linux-x86_64](https://github.com/docker/compose/releases/download/1.8.1/docker-compose-Linux-x86_64),然后重新命名添加可執行權限即可:
$ mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose;
$ chmod +x /usr/local/bin/docker-compose
# 百度云地址: http://pan.baidu.com/s/1slEOIC1 密碼: qmca
# docker官方離線地址:https://dl.bintray.com/docker-compose/master/

安裝完成后可以查看版本:

# docker-compose --version
docker-compose 1.8.1

升級

如果你使用的是 Compose 1.2或者早期版本,當你升級完成后,你需要刪除或者遷移你現有的容器。這是因為,1.3版本, Composer 使用 Docker 標簽來對容器進行檢測,所以它們需要重新創建索引標記。

卸載

$ rm /usr/local/bin/docker-compose

# 卸載使用pip安裝的compose
$ pip uninstall docker-compose

Compose區分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+)。Version 2支持更多的指令。Version 1沒有聲明版本默認是"version 1"。Version 1將來會被棄用。

版本1指的是忽略version關鍵字的版本;版本2必須在行首添加version: '2'。

入門示例

一般步驟

1、定義Dockerfile,方便遷移到任何地方;
2、編寫docker-compose.yml文件;
3、運行docker-compose up啟動服務

示例

準備工作:提前下載好鏡像:

docker pull mysql
docker pull wordpress

需要新建一個空白目錄,例如wptest。新建一個docker-compose.yml

version: '2'
services:
  web: 
   image: wordpress:latest 
   links: 
    - db
   ports: 
    - "8002:80"
   environment:
    WORDPRESS_DB_HOST: db:3306
    WORDPRESS_DB_PASSWORD: 123456
  db: 
   image: mysql 
   environment: 
    - MYSQL_ROOT_PASSWORD=123456

以上命令的意思是新建db和wordpress容器。等同于:

$ docker run --name db -e MYSQL_ROOT_PASSWORD=123456 -d mysql
$ docker run --name some-wordpress --link db:mysql -p 8002:80 -d wordpress



注意,如果你是直接從fig遷移過來的,且weblinks- db:mysql,這里會提示沒有給wordpress設置環境變量,這里需要添加環境變量WORDPRESS_DB_HOSTWORDPRESS_DB_PASSWORD

好,我們啟動應用:

# docker-compose up
Creating wptest_db_1...
Creating wptest_wordpress_1...
Attaching to wptest_db_1, wptest_wordpress_1
wordpress_1 | Complete! WordPress has been successfully copied to /var/www/html

就成功了。瀏覽器訪問 http://localhost:8002(或 http://host-ip:8002)即可。

默認是前臺運行并打印日志到控制臺。如果想后臺運行,可以:

docker-compose up -d

服務后臺后,可以使用下列命令查看狀態:

# docker-compose ps
    Name           Command        State     Ports     
-----------------------------------------------------------------------------------
figtest_db_1     docker-entrypoint.sh mysqld   Up   3306/tcp       
figtest_wordpress_1  docker-entrypoint.sh apach ...  Up   0.0.0.0:8002->80/tcp

# docker-compose logs
Attaching to wptest_wordpress_1, wptest_db_1
db_1    | 2016-10-4T14:38:46.98030Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1    | 2016-10-4T14:38:46.99974Z 0 [Note] mysqld (mysqld 5.7.15) starting as process 1 ...
db_1    | 2016-10-4T14:38:46.27191Z 0 [Note] InnoDB: PUNCH HOLE support available

停止服務:

# docker-compose stop
Stopping wptest_wordpress_1...
Stopping wptest_db_1...

重新啟動服務:

docker-compose restart

docker-compose.yml參考

每個docker-compose.yml必須定義image或者build中的一個,其它的是可選的。

image

指定鏡像tag或者ID。示例:

image: redis
image: ubuntu:14.04
image: tutum/influxdb
image: example-registry.com:4000/postgresql
image: a4bc65fd

注意,在version 1里同時使用imagebuild是不允許的,version 2則可以,如果同時指定了兩者,會將build出來的鏡像打上名為image標簽。

build

用來指定一個包含Dockerfile文件的路徑。一般是當前目錄.。Fig將build并生成一個隨機命名的鏡像。

注意,在version 1bulid僅支持值為字符串。version 2里支持對象格式。

build: ./dir

build:
 context: ./dir
 dockerfile: Dockerfile-alternate
 args:
  buildno: 1

context為路徑,dockerfile為需要替換默認docker-compose的文件名,args為構建(build)過程中的環境變量,用于替換Dockerfile里定義的ARG參數,容器中不可用。示例:

Dockerfile:

ARG buildno
ARG password

RUN echo "Build number: $buildno"
RUN script-requiring-password.sh "$password"

docker-compose.yml:

build:
 context: .
 args:
  buildno: 1
  password: secret

build:
 context: .
 args:
  - buildno=1
  - password=secret

command

用來覆蓋缺省命令。示例:

command: bundle exec thin -p 3000

command也支持數組形式:

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

links

用于鏈接另一容器服務,如需要使用到另一容器的mysql服務??梢越o出服務名和別名;也可以僅給出服務名,這樣別名將和服務名相同。同docker run --link。示例:

links:
 - db
 - db:mysql
 - redis

使用了別名將自動會在容器的/etc/hosts文件里創建相應記錄:

172.17.2.186 db
172.17.2.186 mysql
172.17.2.187 redis

所以我們在容器里就可以直接使用別名作為服務的主機名。

ports

用于暴露端口。同docker run -p。示例:

ports:
 - "3000"
 - "8000:8000"
 - "49100:22"
 - "127.0.0.1:8001:8001"

expose

expose提供container之間的端口訪問,不會暴露給主機使用。同docker run --expose。

expose:
 - "3000"
 - "8000"

volumes

掛載數據卷。同docker run -v。示例:

volumes:
 - /var/lib/mysql
 - cache/:/tmp/cache
 - ~/configs:/etc/configs/:ro

volumes_from

掛載數據卷容器,掛載是容器。同docker run --volumes-from。示例:

volumes_from:
 - service_name
 - service_name:ro
 - container:container_name
 - container:container_name:rw

container:container_name格式僅支持version 2。

environment

添加環境變量。同docker run -e??梢允菙到M或者字典格式:

environment:
 RACK_ENV: development
 SESSION_SECRET:

environment:
 - RACK_ENV=development
 - SESSION_SECRET

depends_on

用于指定服務依賴,一般是mysql、redis等。

指定了依賴,將會優先于服務創建并啟動依賴。

links也可以指定依賴。

external_links

鏈接搭配docker-compose.yml文件或者Compose之外定義的服務,通常是提供共享或公共服務。格式與links相似:

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

注意,external_links鏈接的服務與當前服務必須是同一個網絡環境。

extra_hosts

添加主機名映射。

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

將會在/etc/hosts創建記錄:

162.242.195.82 somehost
50.31.209.229  otherhost

extends

繼承自當前yml文件或者其它文件中定義的服務,可以選擇性的覆蓋原有配置。

extends:
 file: common.yml
 service: webapp

service必須有,file可選。service是需要繼承的服務,例如web、database。

net

設置網絡模式。同docker的--net參數。

net: "bridge"
net: "none"
net: "container:[name or id]"
net: "host"

dns

自定義dns服務器。

dns: 8.8.8.8
dns:
 - 8.8.8.8
 - 9.9.9.9

cpu_shares, cpu_quota, cpuset, domainname, hostname, ipc, mac_address, mem_limit, memswap_limit, privileged, read_only, restart, shm_size, stdin_open, tty, user, working_dir

這些命令都是單個值,含義請參考docker run。

cpu_shares: 73
cpu_quota: 50000
cpuset: 0,1

user: postgresql
working_dir: /code

domainname: foo.com
hostname: foo
ipc: host
mac_address: 02:42:ac:11:65:43

mem_limit: 1000000000
mem_limit: 128M
memswap_limit: 2000000000
privileged: true

restart: always

read_only: true
shm_size: 64M
stdin_open: true
tty: true

命令行參考

$ docker-compose
Define and run multi-container applications with Docker.

Usage:
 docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
 docker-compose -h|--help

Options:
 -f, --file FILE       Specify an alternate compose file (default: docker-compose.yml)
 -p, --project-name NAME   Specify an alternate project name (default: directory name)
 --verbose          Show more output
 -v, --version        Print version and exit
 -H, --host HOST       Daemon socket to connect to

 --tls            Use TLS; implied by --tlsverify
 --tlscacert CA_PATH     Trust certs signed only by this CA
 --tlscert CLIENT_CERT_PATH Path to TLS certificate file
 --tlskey TLS_KEY_PATH    Path to TLS key file
 --tlsverify         Use TLS and verify the remote
 --skip-hostname-check    Don't check the daemon's hostname against the name specified
               in the client certificate (for example if your docker host
               is an IP address)

Commands:
 build       Build or rebuild services
 bundle       Generate a Docker bundle from the Compose file
 config       Validate and view the compose file
 create       Create services
 down        Stop and remove containers, networks, images, and volumes
 events       Receive real time events from containers
 exec        Execute a command in a running container
 help        Get help on a command
 kill        Kill containers
 logs        View output from containers
 pause       Pause services
 port        Print the public port for a port binding
 ps         List containers
 pull        Pulls service images
 push        Push service images
 restart      Restart services
 rm         Remove stopped containers
 run        Run a one-off command
 scale       Set number of containers for a service
 start       Start services
 stop        Stop services
 unpause      Unpause services
 up         Create and start containers
 version      Show the Docker-Compose version information

批處理腳本

# 關閉所有正在運行容器
docker ps | awk '{print $1}' | xargs docker stop

# 刪除所有容器應用
docker ps -a | awk '{print $1}' | xargs docker rm
# 或者
docker rm $(docker ps -a -q)

參考:

1、Overview of Docker Compose - Docker
https://docs.docker.com/compose/overview/

2、library/mysql - Docker Hub
https://hub.docker.com/_/mysql/

 3、library/wordpress - Docker Hub
https://hub.docker.com/_/wordpress/

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:南通 楊凌 遼源 海東 湖南 衡水 新鄉 黃石

巨人網絡通訊聲明:本文標題《詳解Docker之Compose服務編排》,本文關鍵詞  詳解,Docker,之,Compose,服務,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Docker之Compose服務編排》相關的同類信息!
  • 本頁收集關于詳解Docker之Compose服務編排的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲欧洲精品一区二区三区 | 欧美一区二区三区人| 国产精品美女久久久久aⅴ | 亚洲婷婷在线视频| 国产馆精品极品| 亚洲欧美日韩人成在线播放| 日本不卡中文字幕| 免费日本视频一区| 东方aⅴ免费观看久久av| 亚洲图片欧美一区| 午夜久久电影网| 久久精品二区亚洲w码| 99久久精品国产一区二区三区| 欧美大尺度电影在线| 亚洲视频免费在线| 91福利精品第一导航| 日韩成人免费电影| 欧美在线色视频| 欧美激情综合在线| 午夜一区二区三区视频| 成人精品小蝌蚪| 中文字幕欧美区| 高清av一区二区| 精品一区二区免费视频| 欧美日韩日日骚| 欧美一区2区视频在线观看| 亚洲欧美日韩国产综合| 免费在线观看视频一区| av电影一区二区| 亚洲欧洲另类国产综合| 欧美一区二区在线免费观看| 日韩理论片网站| 337p日本欧洲亚洲大胆色噜噜| 日本亚洲视频在线| 日韩西西人体444www| 亚洲欧洲日韩av| 在线观看91精品国产麻豆| 2017欧美狠狠色| 最近日韩中文字幕| 一区二区三区精品在线| 欧美激情一区二区三区全黄| 三级一区在线视频先锋 | 91精品国产免费久久综合| 91免费观看视频| 欧美日韩免费电影| 国产视频一区二区在线| 日日嗨av一区二区三区四区| 亚洲欧洲一区二区三区| 久久黄色级2电影| 欧美日韩中文字幕精品| 国产成人aaa| 国产精品久久久久久久久晋中 | 亚洲欧美偷拍卡通变态| 欧美日韩一区二区电影| 天天操天天干天天综合网| av影院午夜一区| 91黄色免费观看| 午夜在线电影亚洲一区| 97久久超碰国产精品电影| 国产人成亚洲第一网站在线播放| 日日噜噜夜夜狠狠视频欧美人| 亚洲综合激情另类小说区| 91亚洲精华国产精华精华液| 日本不卡一区二区三区高清视频| 精品第一国产综合精品aⅴ| 精品粉嫩超白一线天av| 免费一区二区视频| 老鸭窝一区二区久久精品| 欧美日韩夫妻久久| 中国色在线观看另类| 欧洲国内综合视频| 中文字幕精品一区二区精品绿巨人| 亚洲美腿欧美偷拍| 久久久精品免费免费| 香蕉久久一区二区不卡无毒影院 | 91精品一区二区三区久久久久久| 国产精品久久久久久久裸模| 2023国产精品| 欧美日韩在线播| 亚洲欧美激情一区二区| 久久久久亚洲蜜桃| 国产99一区视频免费| 欧美日韩成人综合在线一区二区| 一本久久精品一区二区| 青青草成人在线观看| 亚洲视频在线一区二区| 天堂成人国产精品一区| 高清在线观看日韩| 亚洲精品成人在线| 欧美日韩成人在线| 亚洲激情在线激情| 日本一区二区三区国色天香| 亚洲一区中文日韩| 亚洲综合图片区| 成人一区二区三区视频在线观看| 不卡视频在线看| 中文字幕av资源一区| 九九在线精品视频| 日本精品裸体写真集在线观看| 久久精子c满五个校花| 日韩精彩视频在线观看| 欧美日韩你懂得| 国产精品久久综合| 日本伊人色综合网| 国产亚洲婷婷免费| 亚洲欧美经典视频| 日本乱码高清不卡字幕| 国产专区欧美精品| 欧美乱熟臀69xxxxxx| 日韩在线一二三区| 欧美精品在线一区二区| 国产精品欧美一区二区三区| 日韩欧美一区二区久久婷婷| 麻豆精品久久久| 精品一区二区三区免费观看| 亚洲成人资源网| 蜜桃av噜噜一区| 精品理论电影在线观看| 日本美女视频一区二区| 午夜精品久久久久久久久久| 欧美大片拔萝卜| 久久网站热最新地址| 亚洲天堂网中文字| 国产69精品久久777的优势| 91麻豆精品国产91久久久久久 | 国模一区二区三区白浆| 色呦呦日韩精品| 成人福利视频在线| 欧美成人一区二区| 精品成人一区二区| 欧美色精品在线视频| 欧美—级在线免费片| 91传媒视频在线播放| 99在线热播精品免费| 国产一区二三区| 在线观看视频一区二区| 久久丁香综合五月国产三级网站| 国产a级毛片一区| 欧美巨大另类极品videosbest | 91蜜桃视频在线| 国产欧美日韩综合精品一区二区| 国产亚洲精品超碰| 亚洲一二三级电影| 成人福利视频网站| 欧美影视一区二区三区| 欧美变态口味重另类| 日韩精品久久久久久| 国产精品久久久久久久浪潮网站| 亚洲精品免费视频| 日韩精品一区第一页| 国产美女主播视频一区| 在线免费不卡视频| 国产精品久久久久四虎| 国产91综合一区在线观看| 久久天堂av综合合色蜜桃网| 亚洲欧美精品午睡沙发| 麻豆久久一区二区| 欧美日韩一区三区| 亚洲第一搞黄网站| 成人国产精品免费网站| 国产精品国产三级国产专播品爱网| 福利一区二区在线| 中文字幕免费不卡| 捆绑变态av一区二区三区| 在线一区二区观看| 亚洲国产精品久久人人爱| 国产大陆亚洲精品国产| 久久综合久久综合久久综合| 青娱乐精品在线视频| 日韩欧美综合在线| 成人听书哪个软件好| 亚洲色图一区二区| 欧美日韩精品一区视频| 日韩av中文在线观看| 欧美男男青年gay1069videost | 亚洲国产精品精华液2区45| 久久99久久精品| 国产成人免费视频| 99国产精品久久久| 日韩高清一区在线| 亚洲欧美在线视频| 久久欧美中文字幕| 中文字幕av资源一区| 日本一区二区视频在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲成人手机在线| 亚洲私人黄色宅男| 国产精品久久久久久久岛一牛影视 | 国产拍欧美日韩视频二区| 成人av网址在线观看| 一区二区三区电影在线播| 日韩欧美综合一区| 国产suv一区二区三区88区| 日本不卡的三区四区五区| 国产精品久久久久aaaa樱花| 日韩视频永久免费| 东方aⅴ免费观看久久av| 久久99国产精品成人| 日日夜夜免费精品视频| 亚洲午夜日本在线观看|