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

分享

Docker

 ThinkTank_引擎 2017-04-17

一,、Compose安裝

在安裝compose之前,要確保已經(jīng)安裝了docker1.3或以上版本
在Linux64位系統(tǒng)上安裝compose:

curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
chmod +x /usr/local/bin/docker-compose  
  • 1
  • 2
  • 1
  • 2
  • 注:當(dāng)然可以選擇安裝command completion(見二)
  • uname -suname -m中的兩個(gè)引號(hào)是鍵盤上ESC下面的那個(gè)按鍵
    此時(shí),,compose已經(jīng)安裝成功,,使用命令docker-compose --version可以查看

如果是在OS X系統(tǒng)上,則需要執(zhí)行如下步驟(未親測):


二,、Compose命令補(bǔ)全

安裝命令補(bǔ)全

確保bash completion已經(jīng)安裝,,如果當(dāng)前使用非最小安裝的Linux,bash completion已經(jīng)OK了,,如果是在MAC上,,可以使用brew install bash-completion來安裝
將completion腳本放在/etc/bash_completion.d/(在MAC上是/usr/local/etc/bash_completion.d/)

curl -L https://raw./docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
  • 1
  • 1

在下次登錄時(shí),Completion功能已經(jīng)可以使用
可用的補(bǔ)全取決于在命令行的輸入,,會(huì)補(bǔ)全:
* 可用的Docker-compose命令
* 對(duì)于某一特別命令可用的選項(xiàng)
* 在一個(gè)給定的上下文條件(比如:具有運(yùn)行或停止?fàn)顟B(tài)的實(shí)例的服務(wù)或者基于鏡像的服務(wù) VS 基于Dockerfile的服務(wù))下,,給出有可行的服務(wù)名稱,對(duì)于docker-compose scale,,補(bǔ)全服務(wù)名稱時(shí)會(huì)自動(dòng)有”=”附加上去
* 對(duì)于可選項(xiàng)的參數(shù),,比如:docker-compose kill -s會(huì)完成一些信號(hào),,比如SIGUP和SIGUSR1

擁有了這項(xiàng)功能以后,Compose更快更少輸入了呢,!Happy working,!


三、Compose使用實(shí)例

在本例中將會(huì)實(shí)現(xiàn)啟動(dòng)nginx服務(wù)及一個(gè)數(shù)據(jù)卷容器,,并將該數(shù)據(jù)卷容器作為nginx的靜態(tài)文件
1.創(chuàng)建compose文件夾
sudo mkdir composetest
cd composetest
2.創(chuàng)建docker-compose.yml文件
touch docker-compose.yml
vim docker-compose.yml
在docker-compose.yml中輸入以下內(nèi)容:

dvc:  
  image: debian:wheezy
  volumes:  
   - /www:/usr/share/nginx/html:ro

nginx:
  image: nginx:latest
  volumes_from:
   - dvc
  ports:
   - "8081:80"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.啟動(dòng)
docker-compose up -d
注:使用命令docker-compose ps查看運(yùn)行狀況


四,、CLI 說明(docker-compose 命令)

大多數(shù)Compose命令都是運(yùn)行于一個(gè)或多個(gè)服務(wù)的,如果服務(wù)沒有指定,,該命令將會(huì)應(yīng)用到所有服務(wù),,如果要獲得所有可用信息,使用命令:docker-compose [COMMAND] --help,,下面是命令(COMMAND)的說明:

build
創(chuàng)建或者再建服務(wù)
服務(wù)被創(chuàng)建后會(huì)標(biāo)記為project_service(比如composetest_db),,如果改變了一個(gè)服務(wù)的Dockerfile或者構(gòu)建目錄的內(nèi)容,可以使用docker-compose build來重建它

help
顯示命令的幫助和使用信息

kill
通過發(fā)送SIGKILL的信號(hào)強(qiáng)制停止運(yùn)行的容器,,這個(gè)信號(hào)可以選擇性的通過,,比如:
docker-compose kill -s SIGKINT

logs
顯示服務(wù)的日志輸出

port
為端口綁定輸出公共信息

ps
顯示容器

pull
拉取服務(wù)鏡像

rm
刪除停止的容器

run
在服務(wù)上運(yùn)行一個(gè)一次性命令,比如:
docker-compose run web Python manage.py shell

scale
設(shè)置為一個(gè)服務(wù)啟動(dòng)的容器數(shù)量,,數(shù)量是以這樣的參數(shù)形式指定的:service=num,,比如:
docker-compose scale web=2 worker=3

start
啟動(dòng)已經(jīng)存在的容器作為一個(gè)服務(wù)

stop
停止運(yùn)行的容器而不刪除它們,它們可以使用命令docker-compose start重新啟動(dòng)起來

up
為一個(gè)服務(wù)構(gòu)建,、創(chuàng)建,、啟動(dòng)、附加到容器
連接的服務(wù)會(huì)被啟動(dòng),,除非它們已經(jīng)在運(yùn)行了
默認(rèn)情況下,,docker-compose up會(huì)集中每個(gè)容器的輸出,當(dāng)存在時(shí),,所有的容器會(huì)停止,,運(yùn)行docker-compose up -d會(huì)在后臺(tái)啟動(dòng)容器并使它們運(yùn)行
默認(rèn)情況下,如果服務(wù)存在容器的話,,docker-compose up會(huì)停止并再創(chuàng)建它們(使用了volumes-from會(huì)保留已掛載的卷),,如果不想使容器停止并再創(chuàng)建的話,使用docker-compose up --no-recreate,,如果有需要的話,,這會(huì)啟動(dòng)任何停止的容器

選項(xiàng)

–verbose
顯示更多輸出

–version
顯示版本號(hào)并退出

-f,–file FILE
指定一個(gè)可選的Compose yaml文件(默認(rèn):docker-compose.yml)

-p,–project-name NAME
指定可選的項(xiàng)目名稱(默認(rèn):當(dāng)前目錄名稱)


五、docker-compose.yml命令說明

每一個(gè)定義在docker-compose.yml中的服務(wù)必須明確指定一個(gè)image或者build選項(xiàng),,這與docker run命令行中輸入的是對(duì)應(yīng)相同的,,對(duì)于docker run,在Dockerfile文件中指定的選項(xiàng)(比如CMD,、EXPOSE,、VOLUME,、ENV)是默認(rèn)的,因此不必在docker-compose.yml中再指定一次

image
標(biāo)明image的ID,,這個(gè)image ID可以是本地也可以是遠(yuǎn)程的,,如果本地不存在,Compose會(huì)嘗試去pull下來

image: ubuntu  
image: orchardup/postgresql  
image: a4bc65fd  
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

build
該參數(shù)指定Dockerfile文件的路徑,,該目錄也是發(fā)送到守護(hù)進(jìn)程的構(gòu)建環(huán)境(這句有點(diǎn)),,Compose將會(huì)以一個(gè)已存在的名稱進(jìn)行構(gòu)建并標(biāo)記,并隨后使用這個(gè)image

build: /path/to/build/dir  
  • 1
  • 1

command
重寫默認(rèn)的命令

command: bundle exec thin -p 3000  
  • 1
  • 1

links
連接到其他服務(wù)中的容器,,可以指定服務(wù)名稱和這個(gè)鏈接的別名,,或者只指定服務(wù)名稱

links:  
 - db  
 - db:database  
 - redis  
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

此時(shí),在容器內(nèi)部,,會(huì)在/etc/hosts文件中用別名創(chuàng)建一個(gè)條目,,就像這樣:

172.17.2.186  db  
172.17.2.186  database  
172.17.2.186  redis  
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

環(huán)境變量也會(huì)被創(chuàng)建,關(guān)于環(huán)境變量的參數(shù),,會(huì)在后面講到

external_links
連接到在這個(gè)docker-compose.yml文件或者Compose外部啟動(dòng)的容器,,特別是對(duì)于提供共享和公共服務(wù)的容器。在指定容器名稱和別名時(shí),,external_links遵循著和links相同的語義用法

external_links:  
 - redis_1  
 - project_db_1:mysql  
 - project_db_1:postgresql  
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

ports
暴露端口,指定兩者的端口(主機(jī):容器),,或者只是容器的端口(主機(jī)會(huì)被隨機(jī)分配一個(gè)端口)

注:當(dāng)以 主機(jī):容器 的形式來映射端口時(shí),,如果使容器的端口小于60,那可能會(huì)出現(xiàn)錯(cuò)誤,,因?yàn)閅AML會(huì)將 xx:yy這樣格式的數(shù)據(jù)解析為六十進(jìn)制的數(shù)據(jù),,基于這個(gè)原因,時(shí)刻記得要將端口映射明確指定為字符串

ports:  
 - "3000"  
 - "8000:8000"  
 - "49100:22"  
 - "127.0.0.1:8001:8001"  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

expose
暴露端口而不必向主機(jī)發(fā)布它們,,而只是會(huì)向鏈接的服務(wù)(linked service)提供,,只有內(nèi)部端口可以被指定

expose:  
 - "3000"  
 - "8000"  
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

volumes
掛載路徑最為卷,可以選擇性的指定一個(gè)主機(jī)上的路徑(主機(jī):容器),,或是一種可使用的模式(主機(jī):容器:ro)

volumes_from:  
 - service_name  
 - container_name  
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

environment
加入環(huán)境變量,,可以使用數(shù)組或者字典,只有一個(gè)key的環(huán)境變量可以在運(yùn)行Compose的機(jī)器上找到對(duì)應(yīng)的值,,這有助于加密的或者特殊主機(jī)的值

environment:  
  RACK_ENV: development  
  SESSION_SECRET:  
environments:  
  - RACK_ENV=development  
  - SESSION_SECRET  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

env_file
從一個(gè)文件中加入環(huán)境變量,,該文件可以是一個(gè)單獨(dú)的值或者一張列表,在environment中指定的環(huán)境變量將會(huì)重寫這些值

env_file:  
  - .env  


RACK_ENV: development  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

net
網(wǎng)絡(luò)模式,,可以在docker客戶端的--net參數(shù)中指定這些值

net: "bridge"  
net: "none"  
net: "container:[name or id]"  
net: "host"  
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

dns
自定義DNS服務(wù),,可以是一個(gè)單獨(dú)的值或者一張列表

dns: 8.8.8.8  
dns:  
  - 8.8.8.8  
  - 9.9.9.9  
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

cap_add,cap_drop
加入或者去掉容器能力,查看man 7 capabilities 可以有一張完整的列表

cap_add:
  - ALL  

cap_drop:  
  - NET_ADMIN  
  - SYS_ADMIN  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

dns_search
自定義DNS搜索范圍,,可以是單獨(dú)的值或者一張列表

dns_search: example.com  
dns_search:  
  - dc1.example.com  
  - dc2.example.com  
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

working_dir,entrypoint,user,hostname,domainname,mem_limit,privileged,restart,stdin_open,tty,cpu_shares
上述的每一個(gè)都只是一個(gè)單獨(dú)的值,,和docker run中對(duì)應(yīng)的參數(shù)是一樣的

cpu_shares: 73

working_dir: /code
entrypoint: /code/entrypoint.sh
user: postgresql

hostname: foo
domainname: foo.com

mem_limit: 1000000000
privileged: true

restart: always

stdin_open: true
tty: true  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

六,、Compose環(huán)境變量說明

環(huán)境變量已經(jīng)不再是用來連接服務(wù)的推薦方法了,相反,,應(yīng)該使用鏈接名稱(默認(rèn)情況下是鏈接服務(wù)的名稱)作為主機(jī)名稱來連接,,這可以查看docker-compose.yml的更多細(xì)節(jié)
Compose使用Docker links來暴露服務(wù)的容器給其他的。每一個(gè)鏈接的容器都使用了一組環(huán)境變量,,這每一組環(huán)境變量都是以容器名稱的大寫字母開頭的
要查看服務(wù)可用的環(huán)境變量,,運(yùn)行docker-compose run SERVICE env

name_PORT
完整URL,如:DB_PORT=tcp//172.17.0.5:5432

name_PORT_num_protocol
完整URL,,如:DB_PORT_5432_TCP=tcp://172.17.0.5:5432

name_PORT_num_protocol_ADDR
容器的IP地址,,如:DB_PORT_5432_TCP_ADDR=172.17.0.5

name_PORT_num_protocol_PORT
暴露的端口號(hào),如:DB_PORT_5432_TCP_PORT=5432

name_PORT_num_protocol_PROTO
協(xié)議(tcp或者udp),,如:DB_PORT_5432_TCP_PROTO=tcp

name_NAME
完全合格的容器名稱,,如:DB_1_NAME=/myapp_web_1/myapp_db_1  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多