Docker容器 – 端口设置

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

场景:我已经创build了一个新的Dockerfile和docker-compose.yml文件( https://github.com/fdolsky321/Jenkins_Docker ),并且我使用了EXPOSE 49005,并将docker-compose.yml中的两个端口都configuration为49005。 (是正确的docker-compose设置的音量?我正在使用Windows 10 Pro)。

然后,我只是build立和推动,最后,我用docker – 组成了…但后来我看到,仍然有默认端口8080和50000,你能解释我,怎么可能,有发生仍然这些端口,我不想使用?

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

你可以给任何build议,港口如何在docker工作?

View post on imgur.com

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

 ports: - 7777:7777 

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

如果你运行docker ps你将会在你的ports的port部分看到类似于0.0.0.0:49005->8080/tcp东西。

如果你使用docker运行,那么你需要做docker run -p 49005:49005 my-image

要么

如果你正在使用docker-compose,那么你需要添加

  ports: - "49005:49005"