[英]docker-compose simple networking demo
我是docker和docker-compose的新手,我試圖了解docker中的網絡。 我有以下docker-compose.yml文件
version: '3'
services:
app0:
build:
context: ./
dockerfile: Dockerfile0
app1:
build:
context: ./
dockerfile: Dockerfile1
Dockerfiles看起來像
FROM: python:latest
我使用的是python圖片,因為這是我實際用例所需要的。
我跑
docker-compose build
docker-compose up
輸出:
Building app0
Step 1/1 : FROM python:latest
---> 3624d01978a1
Successfully built 3624d01978a1
Successfully tagged docker_test_app0:latest
Building app1
Step 1/1 : FROM python:latest
---> 3624d01978a1
Successfully built 3624d01978a1
Successfully tagged docker_test_app1:latest
Starting docker_test_app0_1 ... done
Starting docker_test_app1_1 ... done
Attaching to docker_test_app0_1, docker_test_app1_1
docker_test_app0_1 exited with code 0
docker_test_app1_1 exited with code 0
根據我的閱讀,docker-compose將創建一個默認網絡,並且兩個容器都將連接到該網絡,並且應該能夠通信。 我想對此進行一個非常簡單的演示,例如使用ping這樣:
docker-compose run app0 ping app1
輸出:
ping: app1: Name or service not known
我是否誤解了docker-compose網絡的工作原理? 我應該能夠從app0 ping ping app1,反之亦然嗎?
在亞馬遜Linux上運行。 docker-compose版本1.23.2,內部版本1110ad01
您需要向使它們保持運行的Python容器中添加一些內容(通過CMD
編寫的腳本),在端口上偵聽的內容或簡單的循環。
現在,它們在啟動后立即終止,沒有任何可Ping的操作。 (整個容器在其命令完成時關閉)
在docker-composer.yaml文件中定義服務可能還不夠,好像其中一項服務將關閉而另一項服務將沒有有關其IP地址的信息。
但是,您可以在它們之間創建依賴關系,例如,這將允許實例在啟動app0時自動啟動app1服務。
設置以下配置:
version: '3'
services:
app0:
build:
context: ./
dockerfile: Dockerfile0
depends_on:
- "app1"
app1:
build:
context: ./
dockerfile: Dockerfile1
如果您希望服務之間相互通信,這是一個好習慣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.