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 目前就发现这些问题了,其他问题希望诸位多多分享,交流。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

《linux c编程指南》学习手记3

6.3.1 多个进程之间的关系 进程组:getpgrp(void)用来返回进程组号 setpgid用来创建一个新的进程组或将一个进程加入另一个已存在的进程组 6...

19780
来自专栏Python小屋

Python+django网页设计入门(6):文件上传与数据导入

1、在网站项目的templates文件夹中创建文件uploadQuestions.html,内容如下:

14210
来自专栏优启梦

Emlog输出加载耗时和查询数据库次数的方法

EMLOG 内置function有getQueryCount() 这个方法,我们可以调用它轻松实现加载耗时和查询数据库次数的贡呢

37780
来自专栏耕耘实录

记住以下10条,Linux磁盘与文件系统管理无忧矣

1、查看当前Linux系统所支持的文件系统:ls -l /lib/modules/$(uname -r)/kernel/fs;目前已加载到内存中支持的文件系统...

11250
来自专栏Youngxj

Emlog输出加载耗时和查询数据库次数的方法

15960
来自专栏不想当开发的产品不是好测试

jenkins 设置 gitlab web hooks

背景 接口自动化期望代码push后触发实现持续集成,代码push后,自动化执行jenkins的job。 步骤 准备工作 工具:jenkins,gitlab je...

70360
来自专栏图像识别与深度学习

《Android》Lesson23-数据存储sqlite1

24570
来自专栏微信公众号:Java团长

扫码登录实现原理

首先,介绍下什么是扫码登录。现在,大部分同学手机上都装有qq和淘宝,天猫等这一类的软件。而开发这些app的企业,都有他们相对应的网站。为了让用户在使用他们的网站...

67840
来自专栏蛋未明的专栏

siege做并发请求得到折线图

18850
来自专栏北京马哥教育

能当主力,能入虚拟机,还能随时打包带走,Linux 就是这么强大

这里介绍一下自己管理自己的Linux桌面的一点经验吧,我觉得还是有不少可取之处的。先来说一下大多数人管理Linux桌面的方法有哪些不方便的地方吧:

31100

扫码关注云+社区

领取腾讯云代金券