RHEL/CentOS Linux 7在Docker容器中启用Ping访问

时间:2020-01-09 10:43:55  来源:igfitidea点击:

我在RHEL/CentOS Linux 7.x服务器上使用RHEL 7.1-4容器。
但是,我无法使用ping命令ping外部站点/IP地址。
我在屏幕上收到以下错误:

ping: Operation not permitted
ping:不允许操作

我该如何解决这个问题?

Linux内核v2.2 +将传统上与超级用户相关联的特权划分为不同的单元,称为功能,可以独立地启用和禁用这些功能。
功能是每个线程的属性。
例如," CAP_NET_ADMIN"功能执行各种与网络相关的操作,例如:

  • 接口配置
  • IP防火墙的管理,伪装和记帐;
  • 修改路由表;
  • 绑定到任何地址以进行透明代理
  • 设置服务类型(TOS
  • 清除驱动程序统计信息
  • 设置混杂模式
  • 启用多播
  • CAP_NET_RAW功能执行各种操作,例如:
  • 使用RAW和PACKET插槽
  • 绑定到任何地址以进行透明代理

Docker修复ping:不允许操作错误

在"主机服务器"上,执行以下命令以分配" CAP_NET_RAW"和" CAP_NET_ADMIN"功能。

语法为:

docker run --cap-add net_raw --cap-add net_admin --rm -t -i rhel7 /bin/sh

或者

docker run --cap-add net_raw --cap-add net_admin --rm -t -i registry.access.redhat.com/rhel7 /bin/bash

追加到Docker控制台

以下命令允许您输入一个正在运行的泊坞窗,称为wwwserver:

docker exec -it [container-id] bash
docker exec -it wwwserver bash

测试ping命令

在wwwserver中安装ping命令:

[root@wwwserver]# yum install -y iputils

运行ping命令:

[root@wwwserver]# ping -c4 google.com