为docker添加端口映射

创建docker时添加端口

通过-p porta:portb添加端口映射。
比如我在虚拟机里输入docker run [镜像名] -p porta:portb,当访问虚拟机的porta端口时,请求会被转发到docker内的portb。

为已创建的docker添加端口

通过commit添加端口

这种方法其实就是通过commit创建新镜像,然后就和上面一样了。
具体流程:

  1. 将已存在的容器commit,创建新镜像;
  2. run新的镜像时通过-p添加端口映射。

通过修改文件添加端口

每个docker都有一个自己对应的文件夹,用于保存容器信息。容器内有一些配置文件,可以通过修改配置文件达到添加端口映射的效果。
具体流程:

  1. 查看容器对应的ID,可以通过docker ps或者docker inspect [容器名] | grep Id查找容器对应的ID。
  2. 停止容器(docker stop [容器名])和docker服务(systemctl stop dockerservice docker stop
  3. 进入**/var/lib/docker/containers/[容器对应ID]**(docker默认安装位置)文件夹,修改以下两个文件(以8080为例,后面会给修改后的结果):
    1. hostconfig.json:在PortBindings下添加**“8080/tcp”:[{“HostIp”:"",“HostPort”:“8080”}]**
    2. config.v2.json:在ExposedPorts下添加**“8080/tcp”:{}**
      添加后在使用docker inspect查看信息时应该可以看到
...
"HostConfig": {
...
	"PortBindings": {
		...
	     "8080/tcp": [
		         {
		             "HostIp": "",
		             "HostPort": "8080"
		         }
		     ]
		 }
	 	...
	...
	}
...
"Config": {
...
 "ExposedPorts": {
	 ...
     "8080/tcp": {}
     ...
 }
 ...
  1. 启动docker服务(systemctl start dockerservice docker start),启动容器(docker start [容器名]
  2. docker ps,发现对应的容器的PORTS处多了8080端口,完事
### 配置Docker中的端口映射Docker中配置端口映射允许容器内的应用程序通过主机上的特定端口访问外部网络。这通常用于开发环境或部署服务时,使得运行于容器内部的服务可以被外界访问。 当创建并启动一个新的容器实例时,可以通过`docker run`命令加上参数来完成端口映射操作。具体来说: 对于简单的场景,只需要使用 `-p` 或 `--publish` 参数即可实现基本的端口转发功能[^1]。例如,假设有一个Web应用正在监听8080端口,则可以在启动容器的时候这样设置端口映射: ```bash $ docker run -d -p 80:8080 my_web_app_image ``` 上述命令表示将宿主机的80端口映射到容器内进程所使用的8080端口上。这里需要注意的是,默认情况下这种映射是对所有可用接口开放的;如果希望限定只对某个具体的IP地址有效的话,还可以进一步指定如下形式: ```bash $ docker run -d -p 127.0.0.1:80:8080 my_web_app_image ``` 此外,在某些复杂的应用环境中可能涉及到多个端口的同时映射需求,此时只需重复使用-p选项多次即可满足要求。比如下面的例子展示了如何同时暴露两个不同端口给外部世界: ```bash $ docker run -d -p 80:8080 -p 443:8443 my_secure_web_app_image ``` 值得注意的是,除了直接利用`docker run`指令外,也可以借助其他工具如Compose文件定义更复杂的多服务架构下的端口分配策略[^2]。 最后提醒一点,为了确保安全性和性能考虑,在实际生产环境中应当谨慎规划对外开放的具体端口号以及对应的协议类型等细节信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值