一、Docker镜像分层
镜像分层的好处:
复用、节省磁盘空间,相同的内容只需加载一份到内存
修改dockerfile后,重新构建时可以用缓存,速度快
1 查看docker镜像分层
通过导入镜像可以查看到镜像分层
通过查看镜像历史可以查看到分层
所有的这些层都会在Docker
主机本地存储区域内存储,可以通过以下指令来列出:
2 通过Dockerfile优化分层信息
- 尽量合并RUN和ADD来减少镜像分层数
- 新加的Dockerfile语句加到最后,不要加到前面
二、同主机中容器互连(–link是单向的)
docker官方已不推荐使用docker run –link来链接2个容器互相通信,随后的版本中会删除–link
1 功能介绍
docker run –link可以用来链接2个容器,使得源容器(被链接的容器)和接受容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。使用案例如下:
源容器启动:
接受容器连接:
进入接受容器测试,不需要ping IP,直接ping别名就可以,web和src_docker都指向172.16.0.2(单向)
接受容器的/etc/hosts将更新
2 案例:构建zabbix-server
启动一个mysql的容器
启动java-gateway容器监控java服务
启动zabbix-mysql容器使用link连接mysql与java-gateway
启动zabbix web显示,使用link连接zabbix-mysql与mysql
zabbix的默认端口已有80改为8080,可见配置文件/etc/zabbix/nginx.conf
登录Zabbix
添加被监控节点-安装zabbix-agent
获取zabbix-agent:
uname -a 查看内核版本
web页面查看zabbix版本
https://www.zabbix.com/download 获取对应agent的安装方法
添加被监控节点-agent配置文件修改
117行:Server=10.0.0.11, 注意防火墙和selinux的阻挡
三、docker重启后容器不退出
默认情况下,systemctl restart docker之后,容器将处于Exited状态
1 添加容器启动参数
docker重启后,容器先停止,再立即重新启动
2 daemon配置文件修改(不推荐)
docker重启后,容器不会停止,一直在运行,不推荐使用,不好控制