大家好,欢迎来到IT知识分享网。
版权声明:本文为CSDN博主「逆袭的小学生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/q610376681/article/details/90483576
————————————————
上面我们只运行了nginx,并没有用浏览器进行访问,这里我们尝试用浏览器访问,但是之前我们要了解一下docker网络.
我们直到docker的隔离性,网络也是个隔离性的一部分,linux使用了命名空间来进行资源的隔离,比如pid namespace就是用来隔离进程的,mount namespace是用来隔离文件系统的,network namespace 是用来隔离网络的.每一个network namespace都提供了一个独立的网络环境,包括网卡路由iptable规则等等,都是与以其它的network space隔离的.
1. docker容器在默认情况下,一般会分配一个独立的network-namespace,也就是网络类型中的Bridge模式.
在使用Bridge时就涉及到了一个问题,既然它有独立的namesapce,这就需要一种技术使容器内的端口可以在主机上访问到,这种技术就是端口映射,docker可以指定你想把容器内的某一个端口可以在容器所在主机上的某一个端口它俩之间做一个映射,当你在访问主机上的端口时,其实就是访问容器里面的端口.
2. 还有一种类型是Host模式,如果在启动容器的时候指定使用Host模式,那么这个容器将不会获得一个独立的network namespace,而是和主机共同使用一个,这个时候容器将不会虚拟出自己的网卡,配置出自己的ip.而是使用宿主机上的ip和端口.也就是说在docker上使用网络和在主机上使用网络是一样的.
3. 还有一种网络类型是None.也就是没有网络,这种情况docker将不会和外界的任何东西进行通讯.
实际访问端口
刚才我们在运行nginx镜像的时候并没有指定端口映射,所以我们这里停掉nginx容器.
docker stop containerId
-p(小写)是开放一个容器的端口到主机上
在后台运行,开放主机8080端口映射到容器的80端口上.
docker run -d -p 8080:80 hub.c.163.com/library/nginx
查看主机8080端口是否开启
netstat -na |grep 8080
———————————————————————————————————————-
-P(大写)是开放容器所有的端口到主机上一个随机的端口.
停掉刚才的docker服务.
docker run -d -P hub.c.163.com/library/nginx
查看随机给予的端口
然后用 ip:32768去访问即可访问到nginx.
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32235.html