翼度科技»论坛 云主机 服务器技术 查看内容

docker容器启动后如何修改或添加端口

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。
但是,大家可能也会遇到需要继续添加2个或者3个端口进行映射的问题。

一、通常间接的办法

保存镜像,再创建一个新的容器,在创建时指定多个端口映射。
1)停止docker容器
  1. docker stop container01  
复制代码
2)commit该docker容器
  1. docker commit container01 new_image:tag
复制代码
3)用前一步新生成的镜像重新起一个容器,其中
  1. 1888
复制代码
是服务器的端口,
  1. 8888
复制代码
是容器的端口
  1. docker run --name container02 -p 1888:8888 new_image:tag
复制代码
这种方式的优点是不会影响统一宿主机上的其他容器,缺点是管理起来显得比较乱。

二、修改文件端口,重启docker服务

1)停止docker(一定要先停止dokcer,不然直接修改配置文件不会生效)
  1. systemctl stop docker
复制代码
2)进入docker文件夹,找到容器的位置:
如果不是root用户查看的话,可能会出现权限不够的问题,可以通过chown更改文件夹权限,docker的默认文件夹应该是
  1. /var/lib/docker
复制代码
,这里我已经将默认文件夹的位置移动到了
  1. /sda1/docker/docker
复制代码
  1. sudo chown -R apr:user /sda1/docker/docker
复制代码
其中,apr表示用户当前所在的用户组,user表示用户账户名称,可以使用
  1. groups user
复制代码
查看用户user所在的用户组
3)进入docker目录下的containner文件夹:

4)在这里能看到已经创建的容器id文件夹,在terminal中输入
  1. docker ps -a
复制代码
查看需要修改的容器ID:

5)进入对应的容器文件夹:

6)先修改这个容器的hostconfig.json文件中的端口
如果之前没有端口映射, 应该有这样的一段:
  1. “PortBindings”:{}
复制代码
增加一个映射, 这样写:
  1. “PortBindings”:{“8888/tcp”:[{“HostIp”:””,“HostPort”:“1888”}]}
复制代码
前一个数字是容器端口, 后一个是宿主机端口。将宿主机的1888端口映射到容器的8888端口
如果增加多个,就是
  1. “PortBindings”:{“8888/tcp”:[{“HostIp”:””,“HostPort”:“1888”}],“6006/tcp”:[{“HostIp”:””,“HostPort”:“1006”}]}
复制代码
将宿主机的1888和1006端口映射到容器的8888和6006端口
而修改现有端口映射更简单, 把端口号改掉就行。
7)如果config.v2.json里面也记录了端口,需要修改ExportPorts

8)重启docker服务
  1. systemctl restart docker
复制代码
9)查看配置项已经修改成功
  1. docker inspect  CONTAINER ID
复制代码


总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/server/3190139qb.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
来自手机

举报 回复 使用道具