如何修改正在运行的docker容器映射端口
修改容器配置文件,重启docker服务
需要注意:该方法需要重启整个docker服务,如果在同一个宿主机上运行着多个容器服务的话,就会影响其他容器服务。
systemctl stop docker
先停止docker服务,此步骤较重要,如果是restart 则修改hostconfig.json配置文件之后,不起作用。
容器的配置文件路径
/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
其中的hashofthecontainer是docker镜像的hash值,可以通过docker ps或者docker inspect containername查看。(CONTAINER ID就可以看出来)
文件中其中有一项是PortBindings,其中8080/tcp对应的是容器内部的8080端口,HostPort对应的是映射到宿主机的端口9190。8361/tcp对应的是容器内部的8361端口,HostPort对应的是映射到宿主机的端口9191。按需修改端口,然后重启docker服务,再启动容器服务就可以了。
然后启动docker服务
systemctl start docker
即可