Docker容器 - 端口设置

时间:2017-09-13 18:15:25

标签: docker jenkins docker-compose dockerfile ports

你能解释一下与Docker容器端口有关的一件事吗?

方案: 我创建了一个新的Dockerfile和docker-compose.yml文件(https://github.com/fdolsky321/Jenkins_Docker),我使用了EXPOSE 49005,并将docker-compose.yml中的两个端口配置为49005.(是docker中的卷) -compose设置正确?我使用的是Windows 10 Pro)。

然后我只是构建并推送它,最后,我使用了docker-compose up ...但后来我看到,仍然有默认端口8080和50000,你能解释一下,怎么可能,那里我还想要使用这些端口吗?

然后我试图运行此图像,但我无法在任何端口(8080,50000,49005)上打开jenkins。当我使用docker run命令时,它工作得很好,但我想使用docker-compose.yml文件中使用的端口。

您能提供任何建议吗,端口如何在docker中工作?

https://imgur.com/a/0KLFs

2 个答案:

答案 0 :(得分:0)

可能这些端口未映射到正在运行容器的主机。 docker-compose文件端口中有一个指令。为了将端口映射到主机,只需指定相关端口,通过该端口可以从主机访问一个内部容器。例如:

ports: 
   - 7777:7777 

因此,7777内部容器将通过主机上的7777访问。左侧主机一侧和右侧容器一个。有关详细信息,请参阅文档:https://docs.docker.com/compose/compose-file/#ports
如果我不正确地理解你的问题,请道歉。

答案 1 :(得分:0)

如果您运行docker ps,您将在容器的ports部分中看到类似0.0.0.0:49005->8080/tcp的内容。

如果您正在使用docker run,那么您需要这样做 docker run -p 49005:49005 my-image

如果您使用的是docker-compose,则需要添加

    ports:
      - "49005:49005"