从现有docker容器中删除端口绑定

时间:2014-12-18 15:02:08

标签: docker

目前我有一个用

创建的容器
docker run --detach --name gitlab_app --restart=always --publish 192.168.0.200:80:80 --publish 192.168.0.200:22:22 --volumes-from gitlab_data gitlab_image

我想从图片中删除端口绑定8022。是否可以从现有的docker容器中删除端口绑定?

注意:可以将容器脱机以删除绑定。

1 个答案:

答案 0 :(得分:2)

如果容器可以脱机,那么为什么不在没有端口开关的情况下移除并再次运行?

如果确实需要在不删除容器的情况下执行此操作,则只需修改基础iptables更改即可。

# Will list the rules
iptables -L

# Will delete the rule you want to remove
iptables --delete [chain] <Rule definition>

一般来说,您的数据应始终位于3个地方之一

  1. 可以与重新启动的服务容器链接的仅数据容器。
  2. 在服务容器中定义的卷,可以与新容器链接以进行备份。有关示例,请参阅here
  3. 在主机安装的卷中,以便您可以重新启动容器并将相同的位置安装到新容器中。
  4. 使用这三种方法中的一种,重新启动服务变得很容易,这应该是标准的,因为应该设计微服务,以便它们可以经常停机和恢复。这些方法也将加速您的应用程序,因为默认的联合文件系统比用于卷的普通文件系统慢。

    如果需要从未正确规划卷的容器中恢复数据,可以使用docker export功能导出容器的状态。然后将其导入到具有主机安装卷的新容器中。将关键数据从容器内复制到卷。