文章目录
一,namespaces的六项隔离
项番 | 类型 | 功能说明 |
---|---|---|
NO.1 | MNT Namespace | 提供磁盘挂载点和文件系统的隔离能力 |
NO.2 | IPC Namespace | 提供进程间通信的隔离能力 |
NO.3 | Net Namespace | 提供网络隔离能力 |
NO.4 | UTS Namespace | 提供主机名隔离能力 |
NO.5 | PID Namespace | 提供进程隔离能力 |
NO.6 | User Namespace | 提供用户隔离能力 |
二,Docker网络
Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。
Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过
Container-IP访问到容器。如果容器希望外部访问能够访问到,可以通过映射容器端口到宿主主机(端口映射),即 docker run创建容器时候通过-p或-Р参数来启用,访问容器的时候就通过[ 宿主机IP]:[容器端口]访问容器。
那如何让容器被外部访问呢?接下来就要讲到一个功能,容器端口映射
1.端口映射
(1)随机端口映射
docker run -itd -P 镜像:标签
(2)指定端口映射
docker run -itd -p 指定宿主机端口:指定容器端口 镜像:标签
##宿主机端口 32768 - 60999 这些端口都能被使用 0-32767 端口是被系统所使用的
2.查看容器日志
docker logs 容器id或容器名
3.docker的网络模式
**Host:**容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。<