Docker学习笔记(五)

2018-11-10  本文已影响0人  jauhwan

Docker网络

一、网络类型

linux利用net namespace来隔离网络。Docker容器默认情况下会分配一个独立的network namespace,也就是网络类型中的bridge模式,另外一种模式是host模式,如果容器启动时指定使用host模式,那么这个容器不会获得一个独立的network namespace,它会和主机使用同一个,这时候容器不会虚拟出自己的网卡,配置自己的ip,而是会使用宿主机上的ip和端口。最后一种网络类型是none,这种情况docker容器不会和外界通信。

二、端口映射

Docker可以指定容器内的某个端口和宿主主机上的其中一个端口做映射,当访问主机这个端口的时候实际上是访问容器内被映射的端口。

那么现在就开始设置,访问容器中的nginx吧。

输入docker run --help 查看命令参数

发现-p 参数后面加上端口号就能让docker容器端口映射到主机上。

docker端口映射参数

输入docker run -d -p 8080:80 命令,这个命令是把主机的8080端口映射到容器的80端口。

运行nginx

在浏览器中访问8080端口,这时候发现已经可以访问到nginx了。

访问nginx

那么这个时候,我们再试试docker run -d -P,这个命令是把所有的端口都建立映射。

docker开放所有端口

输入docker ps命令,看容器情况,发现docker用了一个32768端口映射到容器的80端口。

docker容器

这时候再用8080端口去访问容器,发现已经访问不了。

访问nginx

改成32768端口,就能成功访问,所以可以得知,-P参数是用宿主主机的随机一个端口去映射容器的端口。

上一篇下一篇

猜你喜欢

热点阅读