准确地说,不是不能联网,而是默认模式(bridge)不能,可能我这并不能完全解决docker容器的网络问题,但我确实得到解决,此文章仅供参考。

起因:

使用Dockerfile文件构建镜像时,会显示无法访问安装包的地址,例如:apt-get update命令执行不了。不使用Dockerfile直接启动并进入容器,发现网络确实无法访问,可以输入curl www.baidu.com确定。但是如果启动命令指定网络模式又可以联网,docker run --network host -it imageid /bin/bash。这个就很奇怪,但是想通过Dockerfile的网络模式却仍不能上网,无论是bridge还是host。

分析:

主要问题就是网络,而且这个问题并不是docker本身引起的,而是宿主机的问题。

解决:

通过不断测试和查阅资料,终于在一篇文章中的评论里找到的解决方法。

关闭防火墙和selinux

操作方法如下:

1、暂时关闭

setenforce 0

2、永久关闭

vi /etc/selinux/config

修改配置项:SELINUX=disabled,默认:#SELINUX=enforcing

# 重启服务器

reboot

被永久关闭的selinux,如果需要重新开启,那么需要手动编辑配置文件。如果直接使用:setenforce 0 将会报错:“setenforce: SELinux is disabled”;

3、重新开启selinux

vi /etc/selinux/config

将配置项:SELINUX=disabled,改为:SELINUX=enforcing 或 SELINUX=permissive

# 重启服务器

reboot

4、selinux的模式
enforcing:强制模式,SELinux 正在运行中,已经在限制 domain/type。
permissive:宽容模式:SELinux 正在运行中,但仅发出警告信息,并不会实际限制 domain/type 的存取(permissive模式可以用在测试环境中供调试规则时使用)。
disabled:关闭,SELinux 不再运行。
5、selinux状态查看
5.1 方式1
# 查看当前的运行模式

getenforce

5.2 方式2
# 可以查看selinux的概要状态信息

sestatus

5.3 方式3
# 可以查看selinux的详情状态信息

sestatus -v

6、关闭防火墙
6.1 临时关闭防火墙
# 临时关闭防火墙

systemctl stop firewalld.service
# 或者
systemctl stop firewalld

6.2 永久关闭防火墙
# 永久关闭防火墙(必须先临时关闭防火墙,再执行该命令,才能行永久关闭)

systemctl disable firewalld.service
# 或者
systemctl disable firewalld

6.3 开启防火墙(永久关闭的防火墙)
# 开启防火墙

systemctl enable firewalld.service
# 或者
systemctl enable firewalld

Docker容器不能联网问题相关推荐

  1. docker容器内安装ifconfig netstat ping vim 等测试工具的方法

    首先,确保docker容器能联网 ① centos使用yum进行安装 ② Ubuntu/debian等使用apt-get进行安装 安装ifconfig.netstat命令 apt-get instal ...

  2. Docker容器内不能联网的6种解决方案

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Docker容器内不能联网的6种解决方案 注:下面的方法是在容器内能ping通公网IP的解决方案,如果连公网IP都ping不通,那主机可能也上不了网( ...

  3. docker容器联网问题

    写在前面 Docker 容器访问互联网,一直通过--net=host 参数间接实现.该方式存在弊端,因为该模式禁用Docker容器的网络隔离.容器共享宿主机的网络命名空间,直接暴露在公共网络中,即容器 ...

  4. 如何从Docker容器内部连接到计算机的本地主机?

    本文翻译自:From inside of a Docker container, how do I connect to the localhost of the machine? So I have ...

  5. Docker容器学习梳理--日常操作总结

    使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands:attach Attach t ...

  6. CentOSLinux安装Docker容器

    Docker 使用 环境说明 CentOS 7.3(不准确地说:要求必须是 CentOS 7 64位) 不建议在 Windows 上使用 Docker 基本概念 官网:https://www.dock ...

  7. Docker容器间网络通信

    自从Docker容器出现以来,容器网络通信就一直是被关注的焦点,也是生产环境的迫切需求.容器网络通信又分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信. 一.Docker单主机容器通信 基 ...

  8. 【华为云技术分享】Docker容器+Phoronix-Test-Suite测试X86和ARM的ffmpeg转码性能

    [摘要] 如何使用phoronix-test-suite跑ffmpeg转码性能测试,主要测试X86和ARM的.中间使用Docker容器方便操作过程. Phoronix Test Suite是一款性能测 ...

  9. 如何输入已经以新的TTY运行的Docker容器

    本文翻译自:How to enter in a Docker container already running with a new TTY I have a container that is r ...

最新文章

  1. winphone系统a、input标签被点击时产生的半透明灰色背景
  2. Java异常的栈轨迹(Stack Trace)
  3. 一份来自一月寒冬互联网一线的面经(附面试题)
  4. Eclipse的安装与汉化
  5. 盘点最重要的7个Python库
  6. Deploy过程出错解决
  7. CSS media queries
  8. (八)ASP.NET自定义用户控件(1)
  9. (一)Mina源代码解析之总体架构
  10. [转载] 远程方法调用(RMI)与远程过程调用(RPC)
  11. 传TD-SCDMA独立组网 跨国通信公司一片沉默
  12. MySQL主从复制技术(纯干货)
  13. dcp1608w电脑通过_dcp-1608打印机驱动程序
  14. 使用Quartz实现定时任务
  15. 学习笔记(8)之VelocityTracker
  16. linux nodejs 502错误,node.js应用程序与nginx 502错误的网关错误
  17. std::stack使用总结
  18. 计算机工资表怎么打,Word怎么制作工资条 Word制作工资条教程-电脑教程
  19. JVM内存区域(Java内存区域)、JVM垃圾回收机制(GC)初探
  20. 如何关闭vue的语法检查

热门文章

  1. QQ2011 Beta3优先体验(附官方体验地址及下载地址)
  2. 赛门铁克备份软件文档_备份您的Google文档
  3. TF 在ROS基本作用和简单介绍
  4. logistic回归模型python_【机器学习速成宝典】模型篇03逻辑斯谛回归【Logistic回归】(Python版)...
  5. android聊天界面与功能,【android】聊天界面的制作-简易版实现
  6. 【探索-字节跳动】字符串的排列
  7. 学成在线--day04 页面静态化
  8. flutter 获取屏幕宽度/高度
  9. 给大家分享一个串口通信助手SSCOM
  10. pgsql设置字段id自增