Dokcer 通过使用 Linux 桥接提供容器之间的通信,Docker的网络模式有四种
分别是以下四种模式
host 模式,使用--net=host 指定。
container 模式,使用--net=container:NAMEorID 指定。
none 模式,使用--net=none 指定。
bridge 模式,使用--net=bridge 指定,默认配置
如果容器使用 host 模式,那么容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡与配置 IP 等,而是使用宿主机的 IP 和端口。就和直接跑在宿主机中一样。但是容器的文件系统、进程列表等还是和宿主机隔离的。
这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡与配置 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他方面仍然是隔离的。
此模式不同于前两种,Docker 容器有自己的 Network Namespace,但是,Docker容器没有任何网络配置。而是需要我们手动给 Docker容器添加网卡、配置 IP 等。
此模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace,并将一个主机上的Docker容器连接到一个虚拟网桥上。
参数说明
docker -P 随机端口映射
docker -p 指定端口映射
-p hostport:containerport
-p ip:hostport:containerport
docker管理数据的方式有两种:
数据卷
数据卷容器
数据卷是一个或多个容器专门指定绕过Union File System的目录,为持续性或共享数据提供一些有用的功能:
数据卷可以在容器间共享和重用
数据卷数据改变是直接修改的
数据卷数据改变不会被包括在容器中
数据卷是持续性的,直到没有容器使用它们
参数说明
-v /data直接将数据目录挂载到容器/data目录
-v src:dst 将物理机目录挂载到容器目录
同样还可以使用下面的方法挂载
docker run -it -v /data1:/mnt centos
#前者是物理机目录(挂载成功自动在物理机上创建此目录)后者是容器目录
此种方法适合开发代码管理,代码目录直接挂载到容器中,修改WEB站点目录即可访问
docker run -it -v /data2:/opt:ro centos
#指定只读权限进行挂载
docker run -it -v /data2:/opt:rw centos
#指定读写权限进行挂载
docker run -it -v /root/file1:file1 centos
#挂载单个文件到容器目录