docker run -p <主机端口>:<容器端口> --name <容器名称> <镜像名称>
或者使用已经存在的容器的名称:
docker container start -p <主机端口>:<容器端口> <容器名称或ID>
<主机端口> 是你想要在主机上开放的端口号。
<容器端口> 是容器内部正在运行的应用程序监听的端口号。
<容器名称> 是容器的名称。
<镜像名称> 是容器所使用的镜像名称。
例如,如果你想要将容器内部的端口80映射到主机上的端口8080,可以使用以下命令:
docker run -p 8080:80 --name my_container nginx
这将启动一个名为my_container的容器,并将容器的端口80映射到主机上的端口8080。
3.使用docker ps命令检查容器状态和端口映射情况。
请记住,如果容器已经在运行中,你需要先停止它,然后再使用上述步骤重新启动容器以开放端口号。
Docker 端口映射即映射容器内应用的服务端口到本机宿主机器。
当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射。
1. 随机映射
使用 -P 参数时,Docker 会随机映射一个端口到内部容器开放的网络端口,如下开启一个 nginx 服务:
$ docker run -d -P nginx
e93349d539119dc48dc841e117f6388d6afa6a6065b75a5b4aedaf5fb2a051fc
$ docker ps
CONTAINER ID IMAGE COMMAN
通过以上命令创建新的镜像文件,run -p参数开放新端口出来;实际使用上不方便。
宿主机(host)上修改iptables 规则,开放容器的响应端口;参考网上的命令
iptables -t nat -A DOCKER -p tcp -dport 8080 -j DNAT --to-destination 172.17.0.2:8080
当我们创建nginx镜像时,并且启动nginx时,我们只能在容器内部区访问n
在docker容器创建之后,想要增加端口映射,一般来说都是将原有的容器导出为镜像,然后删除原有容器,在重新创建的时候增加端口映射,但是这样操作起来太过于麻烦了。
现在有的办法也就是修改容器的配置文件。
主要有两个文件,一个hostconfig.json,一个config.v2.json.
路径主要是在下。
1.首先将所有的容器都停止, 有多少个就执行多少个,否则后面修改的配置文件会不生效,并且记住你要停止的docker容器的id的前几位(3-5位即可)
2.所有容器都停止之后,停止docker,
3.进入到
docker容器启动后怎么修改端口映射?在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,也会遇到刚开始忘记设置端口映射或者设置错了需要修改的情况。当docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。
通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。
方法一:删除原有容器,重新建新容器
这个解决方案最为简单,把原来的容器删掉,重新建一个。当然这次不要忘记加上端口映射。优点是简单快捷,在测试环境使用较多。缺点是如
iptables -t nat -A DOCKER -p tcp --dport ${YOURPORT} -j DNAT --to-destination ${CONTAINERIP}:${YOURPORT}
iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --...