自定义基础镜像

下载精简版jdk8镜像,会有很多工具不存在,如curl,vim,ping啥的,下载完整版jdk8又有太多不必要的工具,太臃肿了,所有自定义镜像的需求就来了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 0. 下载基础镜像
docker pull openjdk:8-jdk-alpine

# 1. 启动容器并进入交互模式
docker run -it --name temp-container openjdk:8-jdk-alpine sh

# 2. 在容器内安装常用工具
# 网络诊断套装
apk add --no-cache curl wget net-tools iputils bind-tools netcat-openbsd

# 文本处理套装
apk add --no-cache jq vim tree less

# 系统工具套装
apk add --no-cache htop procps zip unzip

# 3. 测试安装
# 测试网络连接
curl -I https://www.baidu.com

# 测试 JSON 处理
echo '{"name":"test","age":25}' | jq '.name'

# 测试端口连通性
nc -zv baidu.com 80

# 查看系统信息
htop

# 4. 退出容器
exit

# 5. 提交容器为新镜像
docker commit temp-container my-openjdk-with-curl:8-jdk-alpine

# 6. 清理临时容器
docker rm temp-container

# 7. 登录远程仓库
docker login -u admin -p passworld harbor.xxxxx.com:81

# 8. 推送镜像到远程仓库
docker tag my-openjdk-with-curl:8-jdk-alpine harbor.xxxxx.com:81/inxxxt/my-openjdk:8-jdk-alpine
docker push harbor.xxxxx.com:81/inxxxxt/my-openjdk:8-jdk-alpine

工具的说明

网络工具套装

  1. curl
    • 用途:通过 URL 传输数据(支持 HTTP、FTP 等协议),常用于测试 API、下载文件。
    • 示例curl https://example.comcurl -O file.txt
  2. wget
    • 用途:非交互式下载文件(支持断点续传),适合后台自动化任务。
    • 示例wget https://example.com/file.zip
  3. net-tools
    • 包含工具ifconfigroutenetstat 等经典网络工具。
    • 用途:网络接口配置、路由表查看、网络连接统计。
  4. iputils
    • 包含工具pingtraceroute 等。
    • 用途:网络连通性测试、路由追踪。
  5. bind-tools
    • 包含工具nslookupdighost 等 DNS 工具。
    • 用途:域名解析诊断(如 dig google.com)。
  6. netcat-openbsd
    • 用途:TCP/UDP 网络连接工具,可用于端口扫描、传输数据。
    • 示例nc -zv host 80(端口扫描)。

文本处理套装

  1. jq
    • 用途:JSON 数据处理与格式化,支持复杂查询和转换。
    • 示例curl https://api.example.com | jq '.key'
  2. vim
    • 用途:强大的文本编辑器,适合命令行环境下编辑配置文件。
    • 配置:可通过 .vimrc 自定义快捷键和主题。
  3. tree
    • 用途:以树形结构展示目录内容,便于快速浏览文件层级。
    • 示例tree /path/to/dir
  4. less
    • 用途:文件内容分页查看工具,支持搜索和导航(比 more 功能更丰富)。
    • 示例less large_file.log

系统工具套装

  1. htop
    • 用途:交互式进程监控工具,可视化展示系统资源使用情况。
    • 优势:比 top 更直观,支持鼠标操作和颜色区分。
  2. procps
    • 包含工具pskillfreeuptime 等系统进程工具。
    • 用途:进程管理、内存监控(如 free -h 查看内存使用)。
  3. zip/unzip
    • 用途:压缩 / 解压 ZIP 格式文件,兼容 Windows/Linux 系统。
    • 示例zip archive.zip file.txtunzip archive.zip

自定义基础镜像
https://lililib.github.io/自定义基础镜像/
作者
煨酒小童
发布于
2025年6月26日
许可协议