想把docker端口的某容器运行的映射端口从5666→80改成8080→80,直接从宝塔文件管理器中"/var/lib/docker/containers/[容器ID]"中找到hostconfig.json文件。
将
"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"5666"}]}
改为
"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}
再运行
systemctl restart docker
通过sudo docker ps -a 命令仍发现端口没有被改过来。hostconfig.json文件被覆盖为了原来的样子,修改的端口号还原了。
[root@Soulxyz ~]# sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
337a6702a81c Soulxyz/test01:latest "./docker/docker-ent…" 4 hours ago Up 5 seconds 0.0.0.0:5666->80/tcp, :::5666->80/tcp Test01
以为是宝塔保存文件的BUG,可能容器运行时这个文件不可写
于是:
docker stop 337a6702a81c
【修正端口号】
docker start 337a6702a81c
……
但是发现容器一启动,文件就被覆盖为新的了。
神了。
把Docker服务停掉再试试?
systemctl stop docker
【修正端口号】
systemctl restart docker
sudo docker ps -a
[root@Soulxyz ~]# sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
337a6702a81c Soulxyz/test01:latest "./docker/docker-ent…" 4 hours ago Up 42 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp Test01
成功。
最后一次更新于2022-10-16
0 条评论