1 docker网络访问
1.1 配置docker网络
1、查看已有网桥:
如果没有brctl show命令,则需要安装,执行命令:yum install -ybridge-utils,每运行一个docker容器都会创建一个网桥接口。
2、查看路由:
执行命令:ip ro li
3、查看docker网络地址:
如果没有ifconfig命令,则需要安装,执行命令:yum install -y net-tools
执行命令:ifconfig
1.2 docker端口随机映射
1、随机映射:
执行命令:docker -P,字母P大写。
重新启动一个docker容器,使用网易163提供的第三方镜像,将端口32768映射到80端口
验证结果:
1.3 docker端口指定映射
1、指定端口映射
将本机65端口映射到容器80端口
执行命令:docker run -d -p 65:80 --name myngnix4 hub.c.163.com/library/nginx
2、端口映射支持的格式
文档中不再做演示,大家回头自己实践。
说明 | 命令 |
指定主机端口 | -p hostPort:containerPort |
指定主机IP地址+主机端口+容器端口 | -p ip:hostPort:containerPort |
指定主机IP地址+容器端口 | -p ip::containerPort |
指定多端口: (主机端口+容器端口)+ (主机端口+容器端口) | -p hostPort:containerPort -p hostPort:containerPort |
2 docker数据管理
生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作。
容器中管理数据主要有两种方式:
1、数据卷(DataVolumes):容器内数据直接映射到本地主机环境;如何在容器内创建数据卷,并且把本地的目录或文件挂载到容器内的数据卷中。
2、数据卷容器(DataVolume Containers):使用特定容器维护数据卷。如何使用数据卷容器在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。
2.1 数据卷
数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount操作。
1、数据卷可以提供很多有用的特性,如下所示:
1.数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便;
2.对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;
3.对数据卷的更新不会影响镜像,解耦了应用和数据;
4.卷会一直存在,直到没有容器使用,可以安全地卸载它。
2、挂载数据卷:
语法1:-v /data
容器内创建路径/data,它存在于联合文件系统外部并可以在主机上直接访问。可以安任何在该镜像/data路径的文件将被复制到volume。
执行命令:docker run -it --name volume_centos -h volume_centos_hostname -v /data centos
从主机上进入data文件夹,新建文件:
执行命令:echo "hello world" > /data/hello.txt
使用docker inspect命令找出Volume在主机存储的路径,执行命令:docker inspect volume_centos | grep Mounts -A 10
进入映射路径,在主机上的路径下的/data/hello.txt文件,会出现在/var/lib/docker/volumes/3a9cbd846966db142fa5911e9d1e8338cddefa11f5794f3c5cb58156576b9056/_data路径下。反之,在/var/lib/docker/volumes/3a9cbd846966db142fa5911e9d1e8338cddefa11f5794f3c5cb58156576b9056/_data路径下操作,也会出现在的主机的/data/路径,两者是两通的。
语法2:-v src:dst
主机的src源目录,映射到容器的dst目标路径,语法中间用冒号间隔。
执行命令:docker run -it --name volume_centos2 -h volume_centos_hostname2 -v /opt:/opt centos
执行完命令后,会进入容器中:docker run -it --name volume_centos2 -h volume_centos_hostname2 -v /opt:/opt centos
主机的/opt目录和容器的/opt目录,两者是共享的、两通的。
2.2 数据卷容器
语法1:--volumes-from
挂载容器目录,指定数据卷来自其它的容器,使用--volumes-from参数所挂载数据卷的容器自身并不需要保持在运行状态。
——厚积薄发(yuanxw)