我如何分配端口映射到现有的Docker容器?

我不确定是否在这里误解了某些内容,但似乎只能通过从映像创建新容器来设置端口映射。 有没有办法将端口映射分配给现有的Docker容器?


我也对这个问题感兴趣。

正如@Thasmo提到的那样,端口转发只能通过docker docker run命令指定。
其他命令, docker start没有-p选项, docker port只显示当前的转发。

要添加端口转发,我总是遵循这些步骤,

  • 停止运行容器

    docker stop test01
    
  • 提交容器

    docker commit test01 test02
    

    注意:以上, test02是我从test01容器构建的新图像。

  • 从提交的图像重新运行

    docker run -p 8080:8080 -td test02
    
  • 第一个8080是本地端口,第二个8080是集装箱端口。


    您可以通过直接编辑/var/lib/docker/containers/[hash_of_the_container]/hostconfig.jsonhostconfig.json文件来更改端口映射

    您可以通过docker docker inspect <container_name>命令确定[hash_of_the_container],并且“Id”字段的值是散列值。

    1) stop the container 
    2) change the file
    3) restart your docker engine (to flush/clear config caches)
    4) start the container
    

    所以你不需要用这种方法创建一个图像。 您也可以在此更改重新启动标志。

    PS您可以访问https://docs.docker.com/engine/admin/以了解如何根据您的主机正确重启Docker引擎。 我使用sudo systemctl restart docker来重新启动在Ubuntu 16.04上运行的Docker引擎


    如果“存在”是指“正在运行”,那么它不是(当前)添加端口映射的可能性。

    但是,如果您需要在正在运行的容器中公开服务而不停止/重新启动服务,则可以动态地添加新的网络接口(例如管道)。

    链接地址: http://www.djcxy.com/p/18229.html

    上一篇: How do I assign a port mapping to an existing Docker container?

    下一篇: I can't find my Docker image after building it