你能解释一下与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中工作?
答案 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"