在docker-compose文件中映射端口时是否需要第二个值?

时间:2017-01-16 18:41:08

标签: docker docker-compose

docker-compose.yml文件中,- "3000"- "3000:3000"之间有什么区别?从文档中可以看出它们是相同的。但是,第一种格式打开到主机的端口。

ports:
 - "3000"
 - "3000-3005"
 - "8000:8000"
 - "9090-9091:8080-8081"
 - "49100:22"
 - "127.0.0.1:8001:8001"
 - "127.0.0.1:5000-5010:5000-5010"

我正在使用网站上的官方Docker文档:here

1 个答案:

答案 0 :(得分:1)

来自文档:

  

指定两个端口(HOST:CONTAINER),或仅指定容器端口(将选择随机主机端口)。

当您只指定一个端口时,您需要使用ps检查容器或检查以查看主机端打开的端口。

$ cat docker-compose.yml
version: '2'

services:
  web:
    image: nginx:latest
    volumes:
    - ./html:/usr/share/nginx/html
    ports:
    - "80"

$ docker-compose up -d
Creating network "test_default" with the default driver
Creating test_web_1

$ docker-compose ps
   Name            Command          State               Ports
--------------------------------------------------------------------------
test_web_1   nginx -g daemon off;   Up      443/tcp, 0.0.0.0:32769->80/tcp

$ curl http://localhost:32769
<html><body>hello world</body></html>