Docker端口映射

转载注明出处 [过把火]:https://www.jianshu.com/p/1d8dc0ddf176

通常情况下,我们想通过宿主机的ip来访问container的接口,那么此时需要进行container的端口映射。


具体步骤如下:
在run一个新镜像的时候加上-p参数指定内外端口:
○ docker run -p ip:hostPort:containerPort
○ 例如在run一个hadoop镜像时:
§ docker run -it -p ip:hostPort:containerPort -h master --name master ubuntu/hadoop2.7.3
○ 查看镜像的port
docker port NAME


端口映射支持的命令格式有多种:
1、ip:hostPort:containerPort:映射指定地址的指定端口到虚拟机的指定端口(不常用)

如:127.0.0.1:3306:3306,映射本机的3306端口到虚拟机的3306端口。 

2、ip::containerPort:映射指定地址的任意端口到虚拟机的指定端口。(不常用)

如:127.0.0.1::3306,映射本机的3306端口到虚拟机的3306端口。 

3、hostPort:containerPort:映射本机的指定端口到虚拟机的指定端口。(常用)

如:3306:3306,映射本机的3306端口到虚拟机的3306端口。

端口映射结束后在宿主机进行ssh测试:
○ ssh远程端口:

ssh -p xx user@ip      

xx 为端口号,user为用户名,ip为要登陆的ip


如果不想用密码登录的话,需要配置SSH
container中和宿主机均要配置SSH,然后将宿主机的公钥追加进container ~/.ssh/authorized文件中即可。

你可能感兴趣的:(Docker端口映射)