Docker实战中,从Ubuntu系列换到CentOS7.X系列应该避免的坑

本文涉及的产品
云防火墙,500元 1000GB
简介:

一、背景

在生产环境中部署、使用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
AI 代码解读

操作过程中,重启是必须的。不禁用也是可以的,permissive也可以。

2.2 防火墙

CentOS7.2及7.4默认情况下使用的firewalld动态防火墙,并且CentOS7.4防火墙默认开机启动。Ubuntu系列使用iptables多一些。如果不用的话建议关闭,一般大型系统都有硬件防火墙,建议关闭。如果个人小规模使用就按照最小化原则进行配置。关闭及禁用开机启动命令可以参考如下:

[root@ChatDevOps ~]# systemctl stop firewalld
[root@ChatDevOps ~]# systemctl disable firewalld
AI 代码解读

2.3 IP转发

默认情况下,CentOS7.4的ip转发是关闭的,需要格外注意,这是造成很多故障的原因之一。这个情况在Ubuntu14.04及以上版本是不存在的,Ubuntu默认开启了的。查看ip转发是否开启可以使用以下命令:

[root@ChatDevOps ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
AI 代码解读

如果返回值是0,说明ip转发是关闭了的,需要开启。开启命令可以参考以下内容:

[root@ChatDevOps ~]# sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
AI 代码解读

命令执行后立即生效,重启之后需要再次操作。如果需要永久生效,那么使用以下命令:

[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
AI 代码解读

三、总结

3.1 Linux的各大发行版在细节方面差异较大,需要格外注意,不能按部就班的随便套用。

3.2 在使用的过程中需要发挥自己的思维变通能力,尽量做到触类旁通。

3.3 目前就发现这些问题了,其他问题希望诸位多多分享,交流。

目录
打赏
0
0
0
0
30
分享
相关文章
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
108 12
Docker环境下的ROS Noetic:Ubuntu 20.04 系统下的解决方案
这就是在Docker环境下安装ROS Noetic在Ubuntu 20.04系统的一种简单方法,希望能对你有所帮助。
162 16
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
117 17
Docker容器的实战讲解
这只是Docker的冰山一角,但是我希望这个简单的例子能帮助你理解Docker的基本概念和使用方法。Docker是一个强大的工具,它可以帮助你更有效地开发、部署和运行应用。
155 27
Docker镜像:Ubuntu支持systemctl、SSH和VNC
总的来说,Docker提供了一个灵活且强大的方式来创建和运行自定义的Ubuntu镜像。通过理解和使用Dockerfile,你可以轻松地创建一个支持systemctl、SSH和VNC的Ubuntu镜像。
217 21
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
205 23
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
359 12
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
200 16
如何在Ubuntu 20.04系统中安装Docker
安装 Docker 引擎的步骤如下:首先更新系统包索引 (`sudo apt update`),安装必要依赖包 (`apt-transport-https` 等),添加 Docker 官方 GPG 密钥及 APT 仓库。接着再次更新包索引并安装 Docker 引擎及相关工具 (`docker-ce` 等)。最后启动 Docker 服务并设置开机自启,通过 `docker --version` 和运行测试容器 (`sudo docker run hello-world`) 验证安装是否成功。
730 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问