BlogArticles/2024-09/Docker内部网络连接错误的一种检查手段 nmap ...

2.2 KiB
Raw Blame History

title description draft type created_at published_at updated_at category tags tech_stack tech_stack_percent tech_stack_icon_names tech_stack_theme_colors
Docker内部网络连接错误的一种检查手段 nmap container 文章讲述了排查容器内应用连接问题的方法。作者创建了一个nmap容器来检查`host.docker.internal`发现该域名已不可用实际应使用IP`172.17.0.1`。同时分享了在服务器无法拉取镜像时,通过`docker save`和`docker load`迁移本地镜像的解决方案。最后提到可直接在容器内启动Ubuntu并exec进入操作。 false article 2024-09-23T20:50:00+08:00 2024-09-23T21:01:00+08:00
2024-09-23T21:01:00+08:00
个人
Docker
Docker
1
mdi:docker
#1c90ed

!!!warning Legacy Article 过时的文章 此文章从旧博客迁移而来,编写时技术水平有限,仅供参考 !!!

最近被一个容器无法内应用无法连接的问题折磨住了我想看看内部的host.docker.internal到底怎么回事于是想到建立一个nmap container进去检查 Dockerfile:

# 使用官方的 Ubuntu 镜像作为基础镜像
FROM ubuntu:latest

# 更新包列表并安装 nmap
RUN apt-get update && apt-get install -y nmap

# 创建一个目录来存储 nmap 结果
RUN mkdir /nmap_results

# 运行 nmap 并将结果保存到文件中,同时打印到控制台
CMD ["sh", "-c", "nmap host.docker.internal > /nmap_results/nmap_results.log && cat /nmap_results/nmap_results.log"]

docker-compose.yml:

version: '3.4'

services:
  nmap_service:
    image: nmap_image:latest
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./nmap_results:/nmap_results

nmap结果发现不存在host.docker.internal可能是docker更新的原因。之前是可用的但现在变成了 172.17.0.1 另附服务器无法pull image时使用其他机器本地image的方法

# 机器一
docker save [imgID] > imagefile
#机器二
docker load < imagefile
docker tag [new_imgID] [随便什么名字]:[随便什么版本]

最后改掉Dockerfile中的FROM就好了 写文章时我才想起来可以直接docker内起ubuntu虚拟机exec进去操作忘了。