说明
- 本博客每周五更新一次。
- docker容器启动时通过 -p 指定映射端口,但某些情况下因为规划或网络问题需要更新对外端口,当前docker未提供修改容器映射端口的方法。以下提供三种方案,按需选择。
分享
资料
https://www.cnblogs.com/fps2tao/p/10557257.html
方案
1、删除原容器,重启新容器
删除已启动容器,从镜像重启新容器。
- 优点:操作相对简单
- 缺点:如果原容器有改动,需要重新操作一般,很麻烦。
2、修改原容器配置文件
进入目录:/var/lib/docker/containers/[容器id]/
下修改文件hostconfig.json
和config.v2.json
,将旧端口后更新为新端口号即可。然后重启docker服务,启动容器即可。
- 优点:完整保留了容器内容,不会系统配置或数据遗失。
- 缺点:需要重启docker服务,如果有多个容器运行,需要考虑对其他容器的影响。
3、生成镜像,新启容器
停止docker容器,使用commit将容器打包为新镜像:docker commit 容器id 镜像名:tag
。使用新镜像启动新容器即可。
- 优点:容器数据完整,不必重启docker服务。
- 缺点:操作相对复杂,生成多余的镜像和容器。
总结
- 三种方案,第一种不建议。
- 如果测试环境,可以接受docker服务重启,推荐第二个。
- 线上环境,推荐第三个,安全系数高,不会因为修改错误造成容器服务崩溃。
- 今天是2021最后一天,艰辛奋斗这么久,终于走到终点,这一路的抉择、颓废、欢喜将要画上句号,元旦快乐。