今天實(shí)驗了下 docker 下的網(wǎng)絡(luò)設(shè)置,記錄一下過程,以免后面忘記。
(系統(tǒng):Centos 7.4 ,docker 版本:18.03.1-ce, docker-compose version 1.18.0)
cat docker-compose.yml version: '3'services: test1: image: busybox:latest # 鏡像為 busybox entrypoint: # 容器啟動后執(zhí)行 top 命令,使容器沒法立即退出 - top networks: backend: # 使用指定的網(wǎng)絡(luò) backend, 并且設(shè)置網(wǎng)絡(luò)別名為 test1, aliases: # 設(shè)置網(wǎng)絡(luò)別名后,可以在其他容器中 ping test1 訪問到該容器 - test1 test2: image: busybox:latest entrypoint: - top networks: backend: aliases: - test2networks: backend:
啟動
docker-compose up -ddocker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4d05ceb2088d busybox:latest "top" 5 seconds ago Up 4 seconds ibaboss_test2_1f4ccafa24664 busybox:latest "top" 5 seconds ago Up 4 seconds ibaboss_test1_1docker exec -it 4d05ceb2088d /bin/sh/ # ping test1PING test1 (172.19.0.2): 56 data bytes64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.061 ms64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.062 msping ibaboss_test1_1PING ibaboss_test1_1 (172.19.0.2): 56 data bytes64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.045 ms64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.056 ms64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.061 ms# 在網(wǎng)絡(luò)中可以通過 容器名字或者網(wǎng)絡(luò)的別名 進(jìn)行通信
Compose 的容器名稱格式是:<項目名稱><服務(wù)名稱><序號>
雖然可以自定義項目名稱、服務(wù)名稱,但是如果你想完全控制容器的命名,可以使用這個標(biāo)簽指定:
container_name: appcat docker-compose_v1.yml version: '3'services: test1: image: busybox:latest entrypoint: - top container_name: test1 networks: - backend test2: image: busybox:latest entrypoint: - top container_name: test2 networks: - backendnetworks: backend:
啟動
docker-compose -f docker-compose_v1.yml up -ddocker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES132859fc77c2 busybox:latest "top" About a minute ago Up About a minute test2cd0a78dc9bd4 busybox:latest "top" About a minute ago Up About a minute test1docker exec -it 132859fc77c2 ping test1PING test1 (172.19.0.2): 56 data bytes64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.070 ms64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.068 ms64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.059 ms
補(bǔ)充:
docker compose 多容器共用網(wǎng)絡(luò)問題
前幾天計劃使用docker compose 編寫一個多容器共用一個容器網(wǎng)絡(luò),結(jié)果總是報錯,今天又試了一下才發(fā)現(xiàn)是端口綁定的問題造成的,端口只能綁定在產(chǎn)生網(wǎng)卡的容器上,綁定在其它窗口上就會報錯,如下代碼 mysql服務(wù)共用了nginx的網(wǎng)卡,在mysql里使用了port:3306時就會運(yùn)行失敗,將3306移到nginx上啟動就成功了。
version: '3.3'services:nginx:image: "lnp_php"# container_name: "lnmp_nginx"ports:- "80:80"- "443:443"- "3306:3306"expose:- "3306"volumes:- /home/www/php:/home/www:rw# depends_on:# - mysql# links:# - mysqlmysql:image: "mysql"# container_name: "lnmp_mysql"# ports:# - "3306:3306"# expose:# - "3306"volumes:- /home/docker/conf/mysql_w:/etc/mysql:rwenvironment:- MYSQL_ROOT_PASSWORD=123456depends_on:- nginxnetwork_mode: "service:nginx"
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選