docker容器添加透传端口
容器端口映射,还是有点复杂的。
1,要么在一开始就设置好,
2,要么把这个容器停止,打包成新容器,用新的容器名运行的时候重新设置端口映射,
docker stop container-name
docker commit container-name new-image-name
docker run -it -d --name container-name -p p1:p1 -p p2:p2 new-image-name
3,要么就用下面这个方法。
先查看容器状况
docker ps
把容器名字(CONTAINER NAMES)记下来。
比如说:kele
先停止现有容器
docker stop kele
service docker stop
# 停止 docker 服务
sudo systemctl stop docker.socket
sudo systemctl stop docker.service
# 启动 docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker.service
根据名字查询ID
为什么要这么做,docker ps看不到么。是的,看不全。这ID很长的。
docker inspect kele | grep Id
"Id": "7ce41cc8d56559939391f1ddd90408fe936fb37de776ab9ddb6358f0a3c36f36",
修改配置文件
cd /var/lib/docker/containers/{Id}/
比如
cd /var/lib/docker/containers/7ce41cc8d56559939391f1ddd90408fe936fb37de776ab9ddb6358f0a3c36f36/
修改config.v2.json和hostconfig.json
照葫芦画瓢就行了,在原有的端口后面追加即可。
重新启动docker和容器
service start docker
docker start kele
来源:https://jasonkayzk.github.io/2020/01/16/%E4%BD%BF%E7%94%A8Docker%E5%AE%B9%E5%99%A8%E6%97%B6%E6%B7%BB%E5%8A%A0%E5%AF%B9%E5%A4%96%E6%98%A0%E5%B0%84%E7%AB%AF%E5%8F%A3%E7%9A%84%E6%96%B9%E6%B3%95%E6%80%BB%E7%BB%93/
https://www.huaweicloud.com/articles/2f77258d9743af7269285e1bf10ef58e.html