Docker实战中,从Ubuntu系列换到CentOS7.X系列应该避免的坑
一、背景
在生产环境中部署、使用Docker已经有很长一段时间了。学习的时候大部分环境、资料都是在Ubuntu14.04、16.04及18.04中实现的。由于某些原因,需要在生产环境中的CentOS7.2和7.4中部署使用Docker。在这个过程中踩了不少坑,花了很多时间,走了很多弯路。
二、一些常见的坑及解决方案
2.1 SELinux
在Ubuntu系列系统中默认是没有SELinux的。因此也无需配置,如果安装了SELinux的话,禁用或者进行相关配置那是必须的。在CentOS7.2和7.4中,SELinux默认是启用的,如果不进行相关配置,那么在Docker卷挂载时是无法正常使用的。查看SELinux状态及关闭SELinux可以使用以下命令:
[root@ChatDevOps ~]# getenforce Enforcing [root@ChatDevOps ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@ChatDevOps ~]# reboot [root@ChatDevOps ~]# getenforce Disabled
操作过程中,重启是必须的。不禁用也是可以的,permissive也可以。
2.2 防火墙
CentOS7.2及7.4默认情况下使用的firewalld动态防火墙,并且CentOS7.4防火墙默认开机启动。Ubuntu系列使用iptables多一些。如果不用的话建议关闭,一般大型系统都有硬件防火墙,建议关闭。如果个人小规模使用就按照最小化原则进行配置。关闭及禁用开机启动命令可以参考如下:
[root@ChatDevOps ~]# systemctl stop firewalld [root@ChatDevOps ~]# systemctl disable firewalld
2.3 IP转发
默认情况下,CentOS7.4的ip转发是关闭的,需要格外注意,这是造成很多故障的原因之一。这个情况在Ubuntu14.04及以上版本是不存在的,Ubuntu默认开启了的。查看ip转发是否开启可以使用以下命令:
[root@ChatDevOps ~]# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0
如果返回值是0,说明ip转发是关闭了的,需要开启。开启命令可以参考以下内容:
[root@ChatDevOps ~]# sysctl net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1
命令执行后立即生效,重启之后需要再次操作。如果需要永久生效,那么使用以下命令:
[root@ChatDevOps ~]# echo "net.ipv4.ip_forward = 1">>/etc/sysctl.conf [root@ChatDevOps ~]# sysctl -p net.ipv4.ip_forward = 1 [root@ChatDevOps ~]# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1
三、总结
3.1 Linux的各大发行版在细节方面差异较大,需要格外注意,不能按部就班的随便套用。
3.2 在使用的过程中需要发挥自己的思维变通能力,尽量做到触类旁通。
3.3 目前就发现这些问题了,其他问题希望诸位多多分享,交流。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Play with Kubernetes Classroom 已上线,快来围观吧!
本文首发自“Docker公司”公众号(ID:docker-cn)编译丨小东每周一、三、五 与您不见不散! 在过去的一年里,每个月都有成千上万的用户在使用 Play with Docker 以及其配套的培训网站 Play with Docker Classroom。该网站允许您在不安装任何配套环境的情况下在自己的浏览器中使用和学习 Docker。去年夏天,我们悄悄推出了 Play with Kubernetes,在使用命令行学习 Kubernetes 时,为用户提供完整的命令行。今天,我们推出了其配套的 Kubernetes 培训网站 —— 即 Play with Kubernetes Classroom(点击 https://training.play-with-kubernetes.com/kubernetes-workshop/ 了解更多详情)。 Play with Kubernetes Classroom 是一个车间环境,就像 Play with Docker Classroom 一样。 我们目前拥有一个广泛的 Kubernetes 车间,最初是基于 Jérôme Petazzo...
- 下一篇
Docker镜像导入导出
当我们制作好本地镜像后,有时需要将镜像拷贝到另外一台服务器使用; 能达到目的有多种方式,如搭建私有仓库(两台服务器有局域网互通的情况下)、通过公共仓库共享镜像(两台服务器都能通公网的情况下)、本地镜像的导入导出(偶尔复制镜像使用的情况下); 笔者将讲述第三种实现方式,操作如下: ------------------------------------------------------------- 作者: 罗穆瑞 出处: http://www.cnblogs.com/kazihuo/ 转载请保留此段声明,且在文章页面明显位置给出原文链接,谢谢! ------------------------------------------------------------------------------ 如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢! ------------------------------------------------------------------------------
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- Red5直播服务器,属于Java语言的直播服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启