300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > docker 改host_所以到底该如何修改 docker 容器的端口映射!!!

docker 改host_所以到底该如何修改 docker 容器的端口映射!!!

时间:2019-08-02 19:50:36

相关推荐

docker 改host_所以到底该如何修改 docker 容器的端口映射!!!

|问题背景

docker run -d -p 9999:8080 -i --name tomcat7 tomcat:7创建容器时,指定了端口映射(-p)

如果容器运行之后发现端口需要改怎么办?

当前是访问 9999 端口

|删除原有容器,重新创建新的容器

|删除容器

docker rm -f 容器ID/名字

|重新创建容器

docker run -d -p 8888:8080 -i --name tomcat7 tomcat:7

重新指定需要映射的端口

|优点

简单粗暴,在测试环境用的更多

|缺点

如果是数据库、服务器相关的容器,创建新的容器,又得重新配置相关东西了

|修改容器配置文件(重点)

|暂停 Docker 服务

systemctl stop docker

|进入 Docker 容器配置文件目录下

cd /var/lib/docker/containers/ls

|进入某个容器的配置文件目录下

容器ID 就是文件夹名称,可通过 docker ps -aq 来查看,不过这是缩写,对照起来看就行

cd c614b6db4aed0c8d0c742baa09ff4e2c24761703586460b68633d7b66e62c633ls

|修改 hostconfig.json

vim hostconfig.json

输入 / ,搜索映射的端口(9999)

修改端口值就行了

修改完后 :wq 退出并保存此文件

|重新启动 Docker 服务

systemctl stop dockerdocker start tomcat7docker ps

访问 8888 端口没问题!

|注意有些文章会写到还需要改 config.v2.json 里的端口,但实操了一遍并不需要

|优点

直接操作配置文件没有副作用,算简单

|缺点

需要暂停 Docker 服务,会影响其他正常运行的 Docker 容器

|使用 docker commit 命令

|停止 Docker 容器

docker stop tomcat7

|使用 commit 构建新镜像

docker commit tomcat7 new_tomcat7docker images

|使用新镜像重新创建一个 Docker 容器

docker run -d -p 8888:8080 -i --name tomcat77 new_tomcat7 docker ps

|修改新容器的名字

如果新容器想用回旧容器的名字,需要先删了旧容器,再改名

docker rm -f tomcat7 docker rename tomcat77 tomcat7 docker ps

|优点无需停止 Docker 服务,不影响其他正在运行的容器

旧容器有的配置和数据,新容器也会有,不会造成数据或配置丢失,对新旧容器都没有任何影响

|缺点

需要生成新的镜像和容器,管理镜像和容器的时间成本会上升

|修改主机 iptables 端口映射

网上很多文章都有这个方法,但是我实操了一遍是不行的,不知道是不是步骤错了,哪位大佬知道可否说一声捏

参考与感谢

来源:博客园

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。