openjdk:8镜像中安装工具命令的方法

news2024/11/15 19:27:04

文章目录

  • 前言
  • 一、获取openjdk:8环境
    • 1.下载并运行openjdk:8
    • 2.获取当前镜像的基础环境信息
    • 3.更换源并安装软件
  • 二、更新Dockerfile
    • 1.增加命令
    • 2.尝试构建
    • 3.测试镜像是否可用
  • 总结


前言

记录一下openjdk:8镜像安装命令的方法
同事使用openjdk:8作为基础镜像构建业务镜像,但是使用中发现镜像里面没有ping、telnet等基础命令,要求把基础命令安装进去。


一、获取openjdk:8环境

1.下载并运行openjdk:8

docker pull openjdk:8
docker run -id --name openjdk8 openjdk:8
docker exec -it openjdk8 /bin/bash

2.获取当前镜像的基础环境信息

执行命令

cat /proc/version
cat /etc/os-release 

结果如下

root@483715bfde28:/# cat /proc/version
Linux version 3.10.0-1160.81.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Fri Dec 16 17:29:43 UTC 2022
root@483715bfde28:/# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

获取到了基础镜像是debain的bullseye

3.更换源并安装软件

将源更换为清华源

cat > /etc/apt/sources.list << EOF
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
EOF

安装软件

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

安装成功,问题不大,准备修改Dockerfile文件


二、更新Dockerfile

1.增加命令

Dockerfile文件中新增如下命令

RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" >/etc/apt/sources.list 
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >>/etc/apt/sources.list 
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free" >>/etc/apt/sources.list 
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free" >>/etc/apt/sources.list
RUN  apt-get clean
RUN  apt-get update
RUN  apt-get install -y curl telnet vim iputils-ping net-tools

2.尝试构建

构建命令

docker build -t test-web:v1.0 .

输出如下

[root@test test-web]# docker build -t test-web:v1.0 .
Step 1/10 : FROM openjdk:8
 ---> b273004037cc
Step 2/10 : RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" >/etc/apt/sources.list
 ---> Using cache
 ---> ea5189455f8b
Step 3/10 : RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >>/etc/apt/sources.list
 ---> Using cache
 ---> 859b218f4aef
Step 4/10 : RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free" >>/etc/apt/sources.list
 ---> Using cache
 ---> 88a9568408ca
Step 5/10 : RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free" >>/etc/apt/sources.list
 ---> Using cache
 ---> 95f37a9b9886
Step 6/10 : RUN  bash -c 'touch /app.jar'
 ---> Using cache
 ---> 9e91facf1408
Step 7/10 : RUN  apt-get clean
 ---> Using cache
 ---> 37265a8c9f30
Step 8/10 : RUN  apt-get update
 ---> Using cache
 ---> 62d8593301bb
Step 9/10 : RUN  apt-get install -y curl telnet vim iputils-ping net-tools
 ---> Using cache
 ---> 1c0e8839109e
Step 10/10 : RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
 ---> Using cache
 ---> c41913f5c72f
Successfully built c41913f5c72f
Successfully tagged test-web:v1.0

截图如下
在这里插入图片描述

构建完毕,测试下是否达到了预期

3.测试镜像是否可用

启动测试容器,检查服务是否安装

docker run -id --name testweb test-web:v1.0
docker exec -it testweb /bin/bash
dpkg -l |grep vpn

检查正常


总结

记录一下openjdk:8安装命令的方式,感觉最主要的还是确认基础环境的系统版本,然后切换一个好使的软件源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蚂蚁CTO线五年测试开发,年后被优化,跟大家唠几句

夙兴夜寐&#xff0c;回顾从毕业出来到现在的这五年&#xff0c;也是在这里给大家抛砖引玉了。先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入蚂蚁金服&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一…

软件测试的主要工作内容是什么

平时说起程序员印象中大都是做Java、做前端、做后端&#xff0c;用着非常晦涩难懂的语言。在电脑前哐哐哐&#xff0c;没一会满屏代码显现出来。然而程序员并不全是印象中这样&#xff0c;还有一部分&#xff1a;他们不常写代码&#xff0c;主要去检查代码&#xff0c;是不是出…

人工智能前置研究-神经元/离子通道

专栏目录: 高质量文章导航_GZVIMMY的博客-CSDN博客 前言: 《生命是什么》:来自有序中的有序,非周期性晶体!有机体内在生命及其外部世界的相互作用,都能被精确的定律所概述,但前提是它自身必须有一个巨大结构,分子数目太少的话,定律也就不准确了。 《神秘的量子生命…

基于RT-Thread完整版搭建的极简Bootloader

项目背景Agile Upgrade: 用于快速构建 bootloader 的中间件。example 文件夹提供 PC 上的示例特性适配 RT-Thread 官方固件打包工具 (图形化工具及命令行工具)使用纯 C 开发&#xff0c;不涉及任何硬件接口&#xff0c;可在任何形式的硬件上直接使用加密、压缩支持如下&#xf…

Python抓取数据具体流程

之前看了一段有关爬虫的网课深有启发&#xff0c;于是自己也尝试着如如何过去爬虫百科“python”词条等相关页面的整个过程记录下来&#xff0c;方便后期其他人一起来学习。 抓取策略 确定目标&#xff1a;重要的是先确定需要抓取的网站具体的那些部分&#xff0c;下面实例是…

MySQL Buffer Pool 详解

1. Buffer Pool 概述 Buffer Pool 到底是什么&#xff1f;从字面上看是缓存池的意思&#xff0c;没错&#xff0c;它其实也就是缓存池的意思。它是MySQL当中至关重要的一个组件&#xff0c;可以这么说&#xff0c;MySQL的所有的增删改的操作都是在 Buffer Pool 中执行的。 但…

90%的人都不算会爬虫,这才是真正的技术,从0到高手的进阶

很多人以为学会了urlib模块和xpath等几个解析库&#xff0c;学了Selenium就会算精通爬虫了&#xff0c;但到外面想靠爬虫技术接点私活&#xff0c;才发现寸步难行。 龙叔我做了近20年的程序员&#xff0c;今天就告诉你&#xff0c;真正的爬虫高手应该学哪些东西&#xff0c;就…

相向双指针 leetcode 15 16 18 611

简单介绍 与同向双指针区别就是&#xff0c;同向查找的是子串最明显得区别就是两侧进行搜索比较快 基本得模板如下 while(left < right) {if( ){}else if(){}else{ // left与right得遍历while(){}} }具体以题目为例 两数之和比较简单 不展示了 leetcode 15 三数之和 这个…

NOC·核桃编程马拉松复赛低年级组 A 卷真题

1. 舞台区如下所示,角色足球的初始坐标为(0,0)。等待下图程序运行完毕后,足 球的坐标是多少?( ) A(100,100) B(-100,100) C(100,-100) D(0,0) 2. 亮亮设计了一个“击落陨石”的游戏。点击开始按钮后,陨石会出现在舞台区的随机位置,碰到炸弹后就会消失…

webrtc处理视频丢包的机制

1.摘要WebRTC是一个开源的实时交互式音频和视频通信框架。本文讨论了WebRTC中用于处理视频通信路径中数据包丢失的一些机制。讨论了各种系统细节&#xff0c;提出了一种基于时间层的自适应混合NACK/FEC方法。结果显示了该方法如何控制实时视频通信的质量权衡2.介绍WebRTC[1]是一…

特征工程——Tabular Data Features multimodal features

一、前言 机器学习时期&#xff0c;要花费大量的时间在特征设计上&#xff0c;好的输入数据可以让训练事半功倍。而有了深度学习后&#xff0c;神经网络可以自动实现特征提取&#xff0c;解放了手工(理论上是这样&#xff0c;实际也是要进行特征筛选的&#xff0c;因为在应用中…

小程序容器技术在微服务架构中的应用

随着移动互联网的发展&#xff0c;小程序已经成为了一种非常流行的应用方式&#xff0c;它可以在不安装任何应用的情况下&#xff0c;直接在移动终端设备&#xff08;如&#xff1a;App&#xff0c;iPad等&#xff09;中运行。微服务架构则是一种的分布式系统架构&#xff0c;可…

Ubuntu16.04 源码安装nginx

nginx源码包&#xff1a;http://nginx.org/download/ 目录1.可联网设备直接通过apt-get安装2.不可联网设备通过安装包编译和移植2.1 首先选择一台可联网的设备2.2 将编译好的文件夹拷贝到目标设备上问题&#xff1a;nginx启动 nginx: [emerg] bind() to 0.0.0.0:80 failed (98:…

机器学习100天(三十四):034 先验概率、条件概率

《机器学习100天》完整目录:目录 机器学习100天,今天讲的是:先验概率、条件概率。 一、先验概率、条件概率 机器学习中,我们经常听到两个数学概念:先验概率、后验概率。抛开复杂数学公式不谈,我们通过一个实际的例子来帮助大家理解这两种概率。 最近天气炎热,红色石头…

问题三十四:傅立叶变换——高通滤波

高通滤波器是一种可以通过去除图像低频信息来增强高频信息的滤波器。在图像处理中&#xff0c;高通滤波器常常用于去除模糊或平滑效果&#xff0c;以及增强边缘或细节。在本篇回答中&#xff0c;我们将使用Python和OpenCV实现高通滤波器。 Step 1&#xff1a;加载图像并进行傅…

JVM系统优化实践(6):年轻代、老年代与数据计算

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e;上回说道如果当前Survivor区中年龄相同的一批对象总大小 ≥ Survivor总数 50%&#xff0c;那么这批对象及比它们年龄更大的对象&#xff0c;就都直接进入老年代。…

三八女神节有哪些数码好物?2023年三八女神节数码好物清单

2023年的三八女神节就快到了&#xff0c;大家还在烦恼&#xff0c;不知道有哪些数码好物&#xff1f;在此&#xff0c;我来给大家分享几款三八女神节实用性强的数码好物&#xff0c;一起来看看吧。 一、蓝牙耳机&#xff1a;南卡小音舱 参考价&#xff1a;239 推荐理由&…

flutter window安装过程

这里写自定义目录标题#下载相关官网地址&#xff1a;https://flutter.cn/docs/get-started/install/windows 根据官网下载相关包flutter_windows_3.7.5-stable.zip 解压到c盘&#xff0c;在path配置相关解压路径(c:\flutter)。 执行 where flutter dart &#xff0c;发现没有提…

Pytorch深度学习实战3-5:详解计算图与自动微分机(附实例)

目录1 计算图原理2 基于计算图的传播3 神经网络计算图4 自动微分机5 Pytorch中的自动微分5.1 梯度缓存5.2 参数冻结1 计算图原理 计算图(Computational Graph)是机器学习领域中推导神经网络和其他模型算法&#xff0c;以及软件编程实现的有效工具。 计算图的核心是将模型表示…

Vue3 企业级项目实战:项目须知与课程约定

本节内容很重要&#xff0c;希望大家能够耐心看完。 Vue3 企业级项目实战 - 程序员十三 - 掘金小册Vue3 Element Plus Spring Boot 企业级项目开发&#xff0c;升职加薪&#xff0c;快人一步。。「Vue3 企业级项目实战」由程序员十三撰写&#xff0c;2744人购买https://s.ju…