如何修改已有容器的端口号
问题:
工作中很多人会遇到容器打开的时候报错,端口号被占用的情况,那这个端口号该怎么修改,去哪里修改
想法:
docker在创建容器的时候,会自动生成容易的配置文件,所以可以采取这个方式找到并修改容器的端口号
思路:
关服务,找配置文件改端口号,开服务,检查是否修改成功
1- 关闭服务
systemctl stop docker
[root@localhost ~]# systemctl stop docker
2- 找docker的配置文件,这个路径下存放所有创建的容器(工具:Xftp)
路径:/var/lib/docker/containers
3- 找到你需要修改的容器id,进目录里修改这两个文件中的参数
4- hostconfig.json
修改端口号
注意:9000是容器本身的端口号,9090是我修改后的端口号,后面访问的话,我要访问9090这个端口号
5- config.v2.json
这里面是容器原本的端口号,检查一下对不对
6- 开启服务
systemctl start docker
[root@localhost ~]# systemctl start docker
7- 开启刚刚修改的容器
docker start 78(78是我容器的端口ID)
[root@localhost ~]# docker start 78
78
8- 查看已开启的容器信息
可以看到这个时候端口号已经修改成功
docker ps
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78dfd1473af7 portainer/portainer "/portainer" 10 days ago Up 2 minutes 0.0.0.0:9090->9000/tcp portainerUI
9- 修改完成~
赠送:
一、如何查看容器的目录挂载
方法1:docker inspect -f"{{.Mounts}}" 端口ID
[root@localhost ~]# docker inspect -f"{{.Mounts}}" 78
[{volume 570e239fc7067a4896ba235b365a832399d4fa91b3ba4a2cfa69d1d84b95a198 /var/lib/docker/volumes/570e239fc7067a4896ba235b365a832399d4fa91b3ba4a2cfa69d1d84b95a198/_data /data local true } {bind /var/run/docker.sock /var/run/docker.sock true rprivate}]
方法2:docker inspect 容器ID | grep Mounts -A 20(查看前20行信息)
[root@localhost ~]# docker inspect 78 | grep Mounts -A 20
"Mounts": [
{
"Type": "volume",
"Name": "570e239fc7067a4896ba235b365a832399d4fa91b3ba4a2cfa69d1d84b95a198",
"Source": "/var/lib/docker/volumes/570e239fc7067a4896ba235b365a832399d4fa91b3ba4a2cfa69d1d84b95a198/_data",
"Destination": "/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
{
"Type": "bind",
"Source": "/var/run/docker.sock",
"Destination": "/var/run/docker.sock",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
"Config": {