Docker遇到未识别的服务器问题解决方案 (docker 未识别的服务器)

Docker作为一款强大的容器化技术,已经被广泛应用于各种企业的开发和生产环境。然而,在使用Docker过程中,你可能会遭遇一个非常棘手的问题,那就是未识别的服务器导致Docker容器无法正常工作。本文将会探讨这个问题的原因以及解决方案。

问题描述

当你在Docker容器中尝试访问一个外部服务器,而该服务器并未被你的Docker环境所识别时(例如未被添加到Docker的hosts文件中),你就会遇到这个问题。通常,你会看到类似以下的错误信息:

“`

$ docker run busybox ping www.example.com

ping: bad address ‘www.example.com’

“`

这种情况下,Docker容器将无法正确解析www.example.com的IP地址,因此无法与其进行通信。

问题原因

那么,为什么Docker无法识别这个服务器呢?出现这种情况的原因很可能是Docker容器内部的DNS服务器配置错误。在Docker容器中,通常会默认使用Google的公共DNS服务器来解析域名。然而,如果这个服务器不在Google的DNS记录中,就会导致解析失败。

解决方案

那么,如何解决这个问题呢?以下是一些可能的解决方案:

1. 添加服务器到hosts文件中

可以尝试将这个服务器手动添加到Docker容器内部的hosts文件中。在Linux系统中,hosts文件通常位于/etc/hosts下。可以通过以下命令打开hosts文件:

“`

$ sudo nano /etc/hosts

“`

在hosts文件末尾添加一行类似以下的内容:

“`

“`

其中,为服务器的IP地址,为服务器的主机名。保存并退出文件后,重新启动Docker容器即可。

2. 配置Docker容器的DNS服务器

另一种解决方案是手动配置Docker容器的DNS服务器,以确保能够正确解析域名。可以在Docker创建容器时使用–dns选项来指定DNS服务器,语法如下:

“`

$ docker run –dns

“`

其中,为要使用的DNS服务器的IP地址,为Docker镜像的名称。

3. 重启Docker服务

如果以上两种解决方案都不起作用,可能是Docker服务本身出现了问题。此时,可以尝试重启Docker服务来解决问题。在Linux系统中,可以使用以下命令重启Docker服务:

“`

$ sudo systemctl restart docker

“`

这个命令会停止并重新启动Docker服务,并重置其所有设置。因此,这种解决方案应该只在其他方法均无效时使用。

相关问题拓展阅读:

【paracraft】使用docker启用服务器,paracraft启动了,端口映射了,客户端还是连接不成功?

测试端口是否可以通

测试服务是姿冲否运行启动

查看防火墙是否开放

检查客户端配置是否正确

搞不绝誉定可以留并册段个联系方式

楼上说的对 建议检查网络 端口 防火墙等内容

使用Docker部署GitLab

查看是否拉取成功

编写内容

在该文件目录下,授予 gitlab_start.sh 执行权限

要注意端口是否被占用

修改 gitlab_start.sh 文件,将映射到宿主机的端口改为 8088 ,或者其它没被占用的端口

重新运行 ./gitlab_start.sh 文件,报错如下

这是因为之前的容器虽然没有运行起来,但是已经创建了,把它删除掉

重新运行 gitlab_start.sh 文件

可以看到容器成功毁信碧启动

创建 docker-compose.yml 文件,并在该文件所在的文件夹目录下运行 docker-compose up -d

需要事先安装 docker-compose

安装docker-compose

:端口和映射目录可根据需要修改

若开放访问端口为 80 , external_url 可不加端口号,默认80

若以

3.1

方法创建,需要修改相关配置文件

在Gitlab容器

运行状态

时,重启服务,并远程访问网站测试

*若访问Gitlab出现502等错误,使用命令检查错误原因

e.g.

查看上述配置文件,查找错误原因

虽然容器启动成功,但是却没办法根据

ip:port

访问gitlab

拉取tomcat镜像

为了测试8088端口是否可用,先把gitlab的容器暂停

启动tomcat容器,并将tomcat容器的8080端口映射到宿主机的8088端口

一切正常,访问ip:8088,还是和以前一样访问不了

因为之前系统的防火墙一直是关闭坦耐的并且其它的服务能正常访问,所以没有怀疑是防火墙的问题

把防火墙打开

访问之前能正常纤举访问的服务,果然没法正常访问。

把该服务的端口开发,正常访问。

打开8088端口

再次访问

返回tomcat的404页面:

HTTP Status 404 – Not Found

虽然是404页面,但是说明此时的端口是能正常访问的

把tomcat的容器停止运行,重新运行gitlab容器

虽然没启动成功,但离成功更进一步了:)

尝试把这个容器删除掉,再创建一次后还是得到这个错误。

还是访问不了,检查一下GitLab内部是否有问题

一切正常

我再次换成tomcat容器进行测试,发现8088端口访问不了了。

但是在宿主机内ping本机是可以的

但是,换成

ip:8088

则不行

根据以上两篇文章,提出

阿里云的内网eth0 网段正好跟Docker 的虚拟网卡都是 172 网段,有冲突

观察发现我使用的云服务器也是阿里云,并且通过 ifconfig 查看

并且查看阿里云的内网ip确实也是 172 开头。

编辑配置文件 /etc/docker/daemon.json ,若 daemon.json 文件不存在新建即可。

重新启动docker服务

可以看到docker0 的地址变了。

但是要注意,使用

docker

启动的服务会默认使用

docker0

,如果是用

docker-compose

启动的服务则不会。上面的

br-12aa369ee4a6

对应的是docker-compose启动的服务,可以看到还是172的网段。

docker-compose up使用自定义的网段的两种方式(从其根源指定)

根据该文使用方法2,即修改 daemon.json 。但并不能成功访问,我的环境是:

docker:20.10.7

,

docker-compose:1.24.1

后面发现访问不成功的原因在于

docker

与防火墙之间的关系,可以关掉防火墙,开启

docker

,不能访问则打开防火墙。在它们之间来回试探 = =。

后面尝试过关闭

firewalld

,打开

iptables

在启用

iptables

时,一般关掉

iptables

可以正常访问,打开则不能正常访问。

在启用

firewalld

时,按照

docker

firewalld

之间启动关闭的顺序不同,有时是开着防火墙能访问,有时是关了防火墙能访问。

但是容器内不能访问外部网络,该问题现在还未解决。 有一种迂回的解决方法就是容器使用

host

网络模式

问题

:怀疑是docker,firewalld与iptables之间的设置问题

Docker与IPtables

docker 端口映射 及外部无法访问问题

Docker and IPtables

还有一种访问不了GitLab的情况是端口映射和配置文件有误。

快速的解决方法:将宿主机端口号和容器号设置相同,可参考下面的博客。

利用GitLab Docker images安装GitLab(填坑)

如果系统环境正常,安装会十分顺利,一般不会有奇怪的问题。

我在不同的服务器安装过

阿里云 CentOS 7.6

: 访问正常,但是因内存不够出现502错误,容器内可正常连接外部网络

阿里云 Alibaba Cloud Linux 2

: 可能不能正常访问容器,容器内不能正常连接外部网络。怀疑是防火墙与docker的问题。

在实体机可以消费docker中fetch超时

在全世界的Docker研讨会上看此备到的最可怕的错误之一是:

Network timed out while trying to connect to

You may want to check your internet connection or if you are behind a proxy.

重新启动泊坞窗机通常称为来解决该问题。 假设您的计算机陪扒源名称是couchbase-javaee 。 机器可以重新启动为:

docker-machine restart couchbase-javaee

Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

设置Docker环境可能会起作用:

eval $(docker-machine env couchbase-javaee)

但是在某些情况下会给出错误:

Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host “192.168.99.106:2376”: dial tcp 192.168.99.106:2376: i/o timeout

You can attempt to regenerate them using ‘docker-machine regenerate-certs name’.

Be advised that this will trigger a Docker daemon restart which will stop running containers.

因此,您需要重新生成证书。 成功执行将产生以下输出:

docker-machine regenerate-certs couchbase-javaee

Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y

Regenerating TLS certificates

Copying certs to the local machine directory…

Copying certs to the remote machine…

Setting Docker configuration on the remote daemon…

有时甚至这个命令也芦态会发疯并给出输出:

docker-machine regenerate-certs couchbase-javaee

Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y

Regenerating TLS certificates

Copying certs to the local machine directory…

Copying certs to the remote machine…

Setting Docker configuration on the remote daemon…

WARNING >>>

This machine has been allocated an IP address, but Docker Machine could not

reach it successfully.

SSH for the machine should still work, but connecting to exposed ports, such as

the Docker daemon port (usually :2376), may not work properly.

You may need to add the route manually, or use another related workaround.

This could be due to a VPN, proxy, or host file configuration issue.

You also might want to clear any VirtualBox host only interfaces you are not using.

无论哪种方式,设置Docker环境:

eval $(docker-machine env couchbase-javaee)

正确设置环境。

翻译自:

docker 超时

原文链接:

文章知识点与官方知识档案匹配

Java技能树网络编程网络编程基础

92440 人正在系统学习中

打开CSDN APP,看更多技术内容

Docker部署在云上,浏览器访问超时

如下,访问ip地址,报错为: 云服务器上,测试请求端口也是不通的: 据运维的大佬说是容器运行在内网桥接模式下不可用,这个应该与网络有关,所以启动镜像时指定主机 映射到所有开放的端口,代码内指定程序运行的端口即可,-itd –network 参数意为:将容器连接到网络, 如下命令,连接指定到主机 docker run -itd –network host aaa bash 所以,重新发布并build镜像,代码内指定端口8002,运行命令 docker build -t aaa . docker run

继续访问

解决在windows下docker login超时的问题

之前只在linux下使用了docker,并没有在windows上安装客户端,也没有集成到idea上,在这次过程中遇到了一些问题。 在Windows下使用docker,不论是login,search还是push都会报错超时:Get

request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) ..

继续访问

docker 下载安装Elasticsearch——网络超时解决办法(net/http: TLS handshake timeout)

一、简介 全文搜索数据最常见的需求,开源的Elasticsearch 是目前全文搜索的引擎首选,也称为开源分布式搜索引擎。 1.特点: 分布式 零配置 自动发现 搜索自动分片 集群配置方便 二、准备环境 elasticsearch7.2.0 docker环境 虚拟机 VMware Workstation Pro 三、docker命令查找镜像 1、docker search elasticsearch 2.下载 ES 镜像 docker pull elasticsear..

继续访问

热门推荐 Docker 容器常见故障排查及处理

Docker 容器常见故障排查及处理 本文来源于公司论坛发表的帖子 Docker是一种相对使用较简单的容器,我们可以通过以下几种方式获取信息: 1、通过docker run执行命令,或许返回信息 2、通过docker logs 去获取日志,做有针对性的筛选 3、通过systemctl status docker查看docker服务状态 4、通过journalctl -u docker.service 查看日志 以下是整理的docker容器类问题故障,分为9个类 一、启动类故障 1、docker:

继续访问

docker系统时间和host系统时间有drift问题解决

今天在制作docker image的时候遇到一问题发现docker run起来的系统时间和host 的系统时间不一致。这种分分钟的事情因为我用了os x beta而头疼一阵。 解决过程: 1、时区设置问题: 在ubuntu下的dockerfile写成 RUN echo “Asia/shanghai” > /etc/timezone 抑或 debian下 ENV TZ=As

继续访问

最新发布 Docker拉取镜像超时解决办法

代码】Docker拉取镜像超时解决办法。

继续访问

“网络超时” Docker错误

在全世界的Docker研讨会上看到的最可怕的错误之一是: Network timed out while trying to connect to

You may want to check your internet connection or if you…

继续访问

docker一直超时

下载docker成功以后 下载镜像一直超时 百度看都是让挂载镜像 挂在以后还是超时 解决办法 1.配置/etc/resolv.conf vim/etc/resolv.conf 在里面添加nameserver 8.8.8.8 2.重启服务 sudo systemctl restart docker 就可以了 …

继续访问

这个超时问题花了我两周才解决!

点击上方蓝色“石杉的架构笔记”,选择“设为星标” 回复“PDF”获取独家整理的学习资料! 长按扫描上方免费领取我们常说面试造火箭,很多人对此提出质疑,相信大家看了这篇文章会明白面试造火箭…

继续访问

docker timeout 解决办法

docker timeout 解决办法. # 配置代理,此处为阿里云的镜像,可选其他的. { “registry-mirrors”:

” > } 运行docker run hello-world 测试是否正常.报错:网络问题 报错如下: C:\Users\Administrator>docker…

继续访问

win7搭建Docker问题解决方案

windows下面安装docker并不顺利,特此记下遇到的一些坑,希望能帮助到遇到同样问题的朋友。 本机环境:win7 64位系统。 下载软件就不多说了,去官网下载就行。 问题1:安装完成后,桌面会有3个图标,双击“Docker Quickstart Terminal”,可能会出现缺少快捷方式报错。 解决方案:这是因为在安装的时候没有勾选安装git,如果之前有装过git,那么“右键”快捷图…

继续访问

使用DNS缓存修复Docker中的DNS超时

在CI中进行不稳定的测试是一场噩梦。 您无法确定您的新代码是否损坏了某些东西,或者仅仅是那些测试再次变得不稳定。 因此,每当我们看到开源项目Adapt的CI出现奇怪的随机故障时,我们都将尽速查找罪魁祸首。 这是关于我们如何发现我们(意外地)用流量泛滥DNS服务器以及如何在Docker中使用DNS缓存来解决问题的故事。 背景 Adapt是我从事的一个开源项目之一,可以将应用程序部署到多种云…

继续访问

Docker 容器启动报错的解决方法

docker: Error response from daemon: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/moby/40b48d6f9ea6c0bbcbaa9413adb1914b41e03b5d2cb72d3c06/log.json: no such file or director

继续访问

windows宿主机访问docker容器ip无法ping通

windows宿主机访问docker容器ip无法ping通 容器IP

,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100

继续访问

Docker进阶之路(八):使用docker-machine管理远程主机

一、前言 本篇博文主要介绍如何使用docker-machine给远程主机安装并管理docker 二、准备工作 以下配置,需要在root账号下操作,否则在为远程主机创建docker时,会出现不必要的错误,特别重要,特别重要,特别重要!!! 1.远程主机需要安装ssh server 使用命令ps -ef | grep sshd检查是否安装并启动 ssh server服务 root@S102:/home/ubuntu# ps -ef | grep sshd root

继续访问

window server2023 docker安装(OSType:linux)

来自文章:

若想安装OSType:windows。可参照:

首先要开启Hyper-v。尝试开启hyper-v方法:

继续访问

docker问题:Network timed out while trying to connect

cs202@cs202-devbox:~$ sudo docker run -i -t ubuntu /bin/bash password for cs202:  Unable to find image ‘ubuntu:latest’ locally Pulling repository docker.io/library/ubuntu Network timed out

继续访问

解决使用idea连接docker失败问题

现象就是拒绝链接:refused connection。 检查服务器的防火墙关了没,没就关闭掉。 1、编辑docker配置文件 2、 ExecStart改成下面的 3、重启docker 4、链接成功 ** **

1、超时原因

外部网站,国内访问时可能会超时

2、解决方法

修改Dockerfile,吵蚂简使用国内的alpine源

2.1、正确的做法

正确的做法是使用国内源完全覆盖 /etc/apk/repositories

在Dockerfile中增加下面的第二行

2.2、可能有问题的做法

追加国内源(echo后面双大于号),此时可能依然超时,因为默认的/etc/apk/repositories里面就有国外的源

追加方法

调试一下可以看到默认的国外源

在Dockerfile中增加一条命令

执行时可以看到全部的源

文章知识点与官方知识档案匹配

网络技能树首页概览

22502 人正在系统学习中

打开CSDN APP,看更多技术内容

最新发布 基于alpine进行dockerfile 构建时,修改apk源

这里提供一种在dockerfile中修改源的方法:在 RUN的之一步,先修改源,并使其生效。时,一直卡住,最后显示超时。这是因为众所周知的原因,只需修改apk的源即可。在基于alpine进行dockerfile 构建时,当进行到。

继续访问

docker Failed to fetch

或者 dockerfile: returned a non-zero code: 100

在使用docker 创建容器时出现的两个问题:docker Failed to fetch

dockerfile: returned a non-zero code: 100归根到底,就是拉取包时连接不稳定,容器内部apt-get 更新或者拉取包时实在太慢出现的错误问题解决:因为代码放在云服务器上,需要修改apt-get源变为对应的服务商的来加速例如,我的是放在腾讯云上,所以要修改为腾讯源一开始改为清华源和其他的加速源试了也都不行总结,如果是在云服务器上跑docke

继续访问

Docker/Podman使用提高—-Dockerfile的制作基础及常见的问题

文章目录1.Dockerfile基础2.docker build 基础3.构建centos镜像:案例一4.修改后的案例一:5.CMD 与 ENTRYPOINT 的区别5.ADD 与 COPY 的区别6.常见问题1).fetch

超时问题2.启动容器后就直接停止了升裤 1.Dockerfile基础 Dockerfile要点: 每个保留关键字(指令)都必须是大写字

继续访问

ERROR:

DNS lookup error

先说下笔者出现这个问题的场景: 1、内网ubuntu20.04,使用代理服务器进行上网 2、使用Dockerfile构建docker镜像 结果使用docker build -t / .构建docker镜像时,出现下面的错误: fetch

ERROR:

DN

继续访问

构建docker镜像时ERROR:

network error

构建物嫌docker镜像时ERROR:

network error

继续访问

使用Alpine镜像构建镜像

一、alpine介绍 1、Alpine Linux是一个完整的操作系统,像其他操作系统一样,可以将Alpine安装到本地硬盘中,使用apk进行包管理。 包含了以下特点: 小巧:基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB; 安全:面向安全的轻量发行版; 简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。 适合容器使用:由…

继续访问

linux指令库 apk,alpine apk 包管理命令使用说明 详解(译至官方文档)

Packages and RepositoriesAlpine Linux的软件包是经过数字签名的tar.gz存档,包含程序,配置文件和依赖关系元数据。它们具有扩展名.apk,通常称为“a-packs”。包存储在一个或多个存储库中。存储库只是一个包含* .apk文件的目录。该目录必须包含一个名为APKINDEX.tar.gz的特殊索引文件,以将其视为存储库。该APK程序可以从多个仓库安装软件包…

继续访问

解决Docker构建时出现的 WARNING: Ignoring

Permission denied

解决Docker构建时出现的 WARNING: Ignoring

Permission denied 在根据官网的Docker-compose构建示例项目时遇到的问题,原因是因为无法访问官网给出的外网镜像,可能还会出现 WARNING: Ignoring

network error 通过在Dockerfile中

继续访问

alpine Linux的apk软件包管理器

Hping使用方法详解原理基础安装Hping的详细参数具体应用 原理基础 Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP回应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,它有一个路由跟踪模式,能够在两个相互包含的通道之间传送文件。Hping常被用于检测网络和主机,其功能非常强大,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。

继续访问

Dockerfile构建Alpine镜像/Linux使用apk下载设置资源(字体包/其他)失败/难产

进行构建之前注意 如果报OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available: unknown错误 请将daemon.json中的”exec-opts”: 删掉 个人问题 我使用Dockerfile构建镜像时,使用Alpine版本的基础镜像包,进行构建一直会卡到

继续访问

CentOS7安装docker经常出现的两个问题

这篇文章memo一下CentOS 7安装Docker经常出现的两个问题和对应方法。

继续访问

linux alpine系统切换安装源并安装telnet

1.alpine切换源 安装慢 apk add很慢 阿里镜像 sed -i ‘s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g’ /etc/apk/repositories 科大镜像 sed -i ‘s/dl-cdn.alpinelinux.org/mirro

继续访问

Docker build镜像时,E: Failed to fetch

docker环境下的下载源依旧是国外源导致的,更换为对应版本的国内源即可。 1.在当前目录下,新建sources.list, 这里填写的是阿里源,18.04版本 deb

bionic main restricted universe multiverse deb

bionic-security main restricted universe multiverse d

继续访问

linux安装时间太久,为什么在Alpine Linux上安装Pandas需要很长时间

我注意到使用基本操作系统Alpine与CentOS或Debian在Docker容器中安装Pandas和Numpy(它的依赖关系)需要更长的时间.我在下面创建了一个小测试来演示时差.除了Alpine更新和下载构建依赖项以安装Pandas和Numpy的几秒钟之外,为什么setup.py需要比Debian安装多70倍的时间?有没有办法加速使用Alpine作为基本图像的安装,或者是否有另一个与Alpine…

继续访问

部署kubernetes官网博客

部署kubernetes官网博客 访问

有些时候不问题,部署离线内网使用官网以及博客, 各位尝鲜可以访问

安装docker root@cby:~#curl-sSL

#Executingdockerinsta…

继续访问

Linux软件包安装(rpm、yum、apt-get、dpkg)

Linux RPM 1、RPM 的由来 rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度 …

继续访问

Docker 主要命令详解

Docker 简介及其命令详解前言一、Docker 是什么?1. Docker简介2. Docker 组成3. Docker 优点二、Docker 命令详解总结 前言 云计算时代的到来,要求运行环境的部署快速、准确。而使用Docker来完成环境的部署也被越来越多的企业所选择,所以掌握Docker十分必要。 一、Docker 是什么? 1. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Window

继续访问

docker E: Failed to fetch… 404 Not Found

E: Failed to fetch 404

Not Found 可能是因为源版本过老 sudo apt-get update 解决

继续访问

Docker常用命令

本次测试的docker版本是Docker version 18.09.0, build 4d60db4 在以前的版本中,具体哪一个我没有仔细研究,docker的配置路径如下: 环境配置文件 /etc/sysconfig/docker-network /etc/sysconfig/docker-storage /etc/sysconfig/docker unit file /usr/lib/sy…

继续访问

Docker官方起步指南学习笔记④——实例之基于Alpine的nodejs服务器

本次的目标是基于前三次课的知识,利用Alpine的最小环境,搭建node.js环境,并创建Hello world网页应用;最后将该容器打包成映像,发布到DockerHub上。

继续访问

alpine

超时

关于docker 未识别的服务器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Docker遇到未识别的服务器问题解决方案 (docker 未识别的服务器)