Docker容器 安装 ping telnet vim curl ifconfig

官方nginx镜像只有个nginx,调试时不方便

因此在dokcer nginx的容器中安装 ping telnet vim curl ifconfig几个工具很有必要,虽然可以在dockerfile中添加

RUN apt-get update && apt-install xxx

命令,然后build的时候没有走国内源,导致生成镜像的时候奇慢无比,一番折腾也没有解决。对于内网只有通过tar包生成镜像只有另想办法,通过容器安装工具走国内源,然后通过容器生成镜像

  1、在一台可以访问外网的宿主机运行docker

1
docker run -it --name=nginx nginx /bin/bash

  2、在容器中修改docker中的镜像源,提高下载速度

1
2
3
4
5
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list

  3、安装工具

1
apt-get update && apt-get install -y curl telnet vim iputils-ping net-tools

  4、退出容器,在宿主机中通过容器导出docker镜像

1
docker commit nginx my_nginx_image # 或者带版本号 docker commit nginx my_nginx_image:v1.0

  5、查看并导出刚刚通过容器生成的镜像

1
docker images

  docker save my_nginx_image -o my_nginx.tar

  6、将my_nginx.tar复制到任意目标机运行

1
docker load -i my_nginx.tar

  备注:其它类似镜像也可以使用相同方法,比如openjdk8的容器,可以在外网先用openjdk镜像运行容器,在容器中安装工具,然后利用容器生成自定义镜像,其它应用的dockerfile即可基于自己生成的这个自定义openjdk镜像来生成新的镜像。比如下图已经生成好带网络工具、vim的openjdk镜像

基于自定义openjdk的应用dockerfile内容举例

1
2
3
4
FROM openjdk-with-tool:8
ADD app.jar
CMD java -jar app.jar
EXPOSE 8888
posted @   刀呢  阅读(1764)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示