docker的网络映射指的是:将容器的端口映射到主机上,即外网通过访问主机的端口,即可访问到该容器。
docker存在4种网络模式
1.bridge模式
这是docker默认的网络模式,使用docker run -p命令使容器与主机端口映射。
2.host模式
如果容器设置成host模式,则启动容器的时候,该容器不会被分配一个独立的网络空间(即容器不会虚拟出他自己的网卡、ip等),而是与主机共用一个网络空间,即使用主机的ip与端口。
3.container模式
4.none模式
如下我们举例桥接模式
1.pull一个nginx镜像
2.停止该容器
3.设置端口映射
docker run -itd -p 8081:80 hub.c.163.com/library/nginx
查看容器是否启动成功
[root@localhost sysctl.d]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
97b9ad011d77 hub.c.163.com/library/nginx "nginx -g 'daemon off" 12 seconds ago Up 10 seconds 0.0.0.0:8081->80/tcp prickly_mcclintock
查看8081端口是否开放
[root@localhost sysctl.d]# netstat -na|grep 8081
tcp6 0 0 :::8081 :::* LISTEN
很明显,8081端口已经开放了。
我们用浏览器测试一下
在浏览器中输入 localhost:8081
很明显可以访问,这说明映射成功了。外网可以访问到容器里面的nginx服务器。