我有機(jī)會(huì)建立一個(gè)以Docker為基礎(chǔ)的微服務(wù)架構(gòu)在我現(xiàn)在的工作中,很多人都會(huì)分享他們使用Docker的心得,我想我也不會(huì)例外。因此我總結(jié)了一些,可能你會(huì)在日常使用Docker的時(shí)候會(huì)用到。
1. 一臺(tái)主機(jī)部署多個(gè)Docker實(shí)例
如果你想運(yùn)行多個(gè)Docker 容器在一臺(tái)主機(jī)上,如果要設(shè)置不同的TLS設(shè)置,網(wǎng)絡(luò)設(shè)置,日志設(shè)置和存儲(chǔ)驅(qū)動(dòng)程序特定的容器,這是特別有用的。例如,我們目前正在運(yùn)行一個(gè)標(biāo)準(zhǔn)設(shè)立兩個(gè)Docker守護(hù)進(jìn)程。一運(yùn)行consul提供DNS解析,并作為群集存儲(chǔ)為其他Docker 容器。
For example:
# start a docker daemon and bind to a specific portdocker daemon -H tcp://$IP:5000 --storage-opt dm.fs=xfs / -p "/var/run/docker1.pid" / -g "/var/lib/docker1" / --exec-root="/var/run/docker1# and start another daemondocker daemon -H tcp://$IP:5001 --storage-opt dm.fs=xfs / -s devicemapper / --storage-opt dm.thinpooldev=/dev/mapper/docker--vg-docker--pool / -p "/var/run/docker2.pid" / -g "/var/lib/docker2" --exec-root="/var/run/docker2" --cluster-store=consul://$IP:8500 / --cluster-advertise=$IP:2376# start a docker daemon and bind to a specific portdockerdaemon -H tcp://$IP:5000 --storage-opt dm.fs=xfs / -p "/var/run/docker1.pid" / -g "/var/lib/docker1" / --exec-root="/var/run/docker1# and start another daemondocker daemon -H tcp://$IP:5001 --storage-opt dm.fs=xfs / -s devicemapper / --storage-opt dm.thinpooldev=/dev/mapper/docker--vg-docker--pool / -p "/var/run/docker2.pid" / -g "/var/lib/docker2" --exec-root="/var/run/docker2" --cluster-store=consul://$IP:8500 / --cluster-advertise=$IP:2376
2. Docker Exec的使用
Docker Exec是一個(gè)很重要很多人都會(huì)用到的工具,也許你使用Docker不只是為你的升級(jí),生產(chǎn)和測(cè)試環(huán)境,同時(shí)也對(duì)本地機(jī)器上運(yùn)行的數(shù)據(jù)庫(kù),服務(wù)器密鑰庫(kù)等,這是能夠直接運(yùn)行的容器的上下文中運(yùn)行的命令,非常方便。
我們做了大量的Cassandra,并檢查表是否包含正確的數(shù)據(jù)。如果你只是想執(zhí)行一個(gè)快速CQL查詢,Docker exec 就很贊:
$ docker ps --format "table {{.ID}}/t {{.Names}}/t {{.Status}}"CONTAINER ID NAMES STATUS682f47f97fce cassandra Up 2 minutes4c45aea49180 consul Up 2 minutes$ docker exec -ti 682f47f97fce cqlsh --colorConnected to Test Cluster at 127.0.0.1:9042.[cqlsh 5.0.1 | Cassandra 2.2.3 | CQL spec 3.3.1 | Native protocol v4]Use HELP for help.cqlsh>$ dockerps --format "table {{.ID}}/t {{.Names}}/t {{.Status}}"CONTAINERID NAMES STATUS682f47f97fce cassandra Up 2 minutes4c45aea49180 consul Up 2 minutes$ dockerexec -ti 682f47f97fce cqlsh --colorConnectedto TestClusterat 127.0.0.1:9042.[cqlsh 5.0.1 | Cassandra 2.2.3 | CQLspec 3.3.1 | Native protocolv4]Use HELPfor help.cqlsh>或者只是訪問(wèn)nodetool或鏡像中可用的任何其他工具:
$ docker exec -ti 682f47f97fce nodetool statusDatacenter: datacenter1=======================Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address Load Tokens Owns Host ID RackUN 192.168.99.100 443.34 KB 256 ? 8f9f4a9c-5c4d-4453-b64b-7e01676361ff rack1Note: Non-system keyspaces don't have the same replication settings, effective ownership information$ dockerexec -ti 682f47f97fce nodetoolstatusDatacenter: datacenter1=======================Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address Load Tokens Owns HostID RackUN 192.168.99.100 443.34 KB 256 ? 8f9f4a9c-5c4d-4453-b64b-7e01676361ff rack1Note: Non-systemkeyspacesdon't havethesamereplicationsettings, effectiveownershipinformation
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注