代码之家  ›  专栏  ›  技术社区  ›  Lucas P.

Docker:如何启动现有的容器并转发端口?

  •  0
  • Lucas P.  · 技术社区  · 6 年前

    我是docker的新手,我正在尝试永久安装Rancher要创建docker容器,我运行以下命令:

    docker run -d --name rancher-server -p 8080:8080 rancher/server

    注意,我想将容器的8080端口转发到主机的8080,因为80被主机上的nginx占用。

    现在,当我停止上述容器并尝试使用 docker start <Container ID> 我得到以下错误:

    Error response from daemon: driver failed programming external connectivity on endpoint rancher-server (c18940f957ed1f737fd5453ea29755adea762d758643a64984d5e3ce8bd3fdbe): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use Error: failed to start containers: c93794a8c0ad

    我知道自从NGIX使用端口80以来发生了这种情况,所以我的问题是我如何启动我现有的容器并告诉它转发它的端口?

    跑步 docker start -d -p 8080:8080 c93794a8c0ad 给出以下错误: unknown shorthand flag: 'd' in -d

    那么,如何启动具有转发端口的容器谢谢您!

    2 回复  |  直到 6 年前
        1
  •  0
  •   David Maze    6 年前

    要更改端口映射,需要删除并重新创建容器所以 docker rm 您现有的容器 docker run 它有新的端口设置。

        2
  •  0
  •   Lucas P.    6 年前

    我删除了容器,并使用Rancher docs推荐的命令创建了一个新的容器 sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server 现在,在正确的端口上按预期停止并启动容器工作我不知道以前出了什么问题,但现在起作用了。