如果你不熟悉的碼頭工人捆請閱讀this.如何使用指定的暴露端口啓動docker bundle?
所以我試圖創建以下docker-compose.yml
version: "2"
services:
web:
image: cohenaj194/apache-simple
ports:
- 32701:80
nginx:
image: nginx
ports:
- 32700:80
簡單泊塢窗束但這種捆綁創建的泊塢窗服務的端口是不暴露在外,我無法通過端口32700或32701訪問服務中的任何容器,如我在docker-compose.yml
中指定的那樣。我該如何公開碼頭捆綁服務的端口?
更新:我相信我的問題可能在於:與docker-compose bundle
創建了test.dab
文件不包含端口32700或32701的任何提及:
{
"Services": {
"nginx": {
"Image": "[email protected]:d33834dd25d330da75dccd8add3ae2c9d7bb97f502b421b02cecb6cb7b34a1b6",
"Networks": [
"default"
],
"Ports": [
{
"Port": 80,
"Protocol": "tcp"
}
]
},
"web": {
"Image": "cohenaj194/[email protected]:6196c5bce25e5f76e0ea7cbe8e12e4e1f96bd36011ed37d3e4c5f06f6da95d69",
"Networks": [
"default"
],
"Ports": [
{
"Port": 80,
"Protocol": "tcp"
}
]
}
},
"Version": "0.1"
}
試圖插入額外的端口到該文件也不起作用,並在下面的錯誤結果:
Error reading test.dab: JSON syntax error at byte 229: invalid character ':' after object key:value pair
UPDATE2:我的服務是訪問過默認端口泊塢窗羣分配給服務沒有定義主機端口時:
[email protected]:~/test$ docker service inspect test_nginx --pretty
ID: 3qimd4roft92w3es3qooa9qy8
Name: test_nginx
Labels:
- com.docker.stack.namespace=test
Mode: Replicated
Replicas: 2
Placement:
ContainerSpec:
Image: [email protected]:d33834dd25d330da75dccd8add3ae2c9d7bb97f502b421b02cecb6cb7b34a1b6
Networks: 1v5nyqqjnenf7xlti346qfw8n
Ports:
Protocol = tcp
TargetPort = 80
PublishedPort = 30000
然後我就可以得到從端口30000我的服務,但是我希望能夠來定義我的服務將使用主機端口。
您是如何檢查端口無法訪問的? – Scadge
curl和telnet –
你可以在啓動時發佈docker ps的結果 – Sylwit