离线升级docker中的某个镜像——以etcd为例

之前有个项目的程序统一在docker中运行,最近在做安全检查时,发现docker的部分image因为版本没有更新到最新而出现安全漏洞问题。

本贴记录linux环境中,升级docker中某个镜像的步骤,详情如下:

一、生成镜像的步骤(以etcd为例):

1.创建dockersfile $ touch Dockerfile

2.$ vim Dockerfile编辑Dockerfile文件,写入内容如下【需根据实际情况修改,以下仅为示例】:

​
FROM alpine:latestADD etcd /usr/local/bin/ADD etcdctl /usr/local/bin/RUN mkdir -p /var/etcd/RUN mkdir -p /var/lib/etcd/# Alpine Linux doesn't use pam, which means that there is no /etc/nsswitch.conf,# but Golang relies on /etc/nsswitch.conf to check the order of DNS resolving# (see https://github.com/golang/go/commit/9dee7771f561cf6aee081c0af6658cc81fac3918)# To fix this we just create /etc/nsswitch.conf and add the following line:RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.confEXPOSE 2379 2380# Define default command.CMD ["/usr/local/bin/etcd"]​

3.下载etcd Releases $ wget https://github.com/etcd-io/etcd/releases/download/v3.3.10/etcd-v3.3.10-linux-amd64.tar.gz

4.解压文件:$ tar -zxvf etcd-v3.3.10-linux-amd64.tar.gz

5.将etcd和etcdctl移动到和dockerfile同级目录:$ mv etcd-v3.3.10-linux-amd64/etcd etcd-v3.3.10-linux-amd64/etcdctl -t ./

6.构建etcd镜像docker build -t etcd .

7.查看构建好的镜像docker images

8. 导入镜像docker save 【镜像ID】 > 【镜像名】.tar

二、更新容器的镜像

  1. 首先通过docker load -i 镜像名,导入镜像(docker tag 【镜像ID】【镜像名称】:【tag版本信息】)
  2. docker images 查看镜像
  3. 修改docker-compose.yml涉及的服务中使用的镜像名称
  4. docker-compose up -d 服务名(docker-compose up -d

作用是创建与启动容器,会重建有变化的服务器(删掉以前建立的容器))

【补充说明】可以直接在可以联网的机器中使用docker pull nginx,下载好之后将nginx的镜像导出,在导入到非联网的机器中使用。

其他:

用语句启动nginx docker

docker run --name my_nginx -d -p 80:80 -v /docker_volumes/nginx/html:/usr/share/nginx/html -v /docker_volumes/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v /docker_volumes/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf:ro --restart=always nginx_1.24.0:latest

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

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

相关文章

ES集成到ambari中出现的常见问题归总

1.elasticesearch用户名组的问题 KeyError: uelasticsearch Error: Error: Unable to run the custom hook script [/usr/bin/python, /var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py, ANY, /var/lib/ambari-agent/data/command-102.json, /var/lib/amb…

Vue 邮箱登录界面

功能 模拟了纯前端的邮箱登录逻辑 还没有连接后端的发送邮件的服务 后续计划,再做一个邮箱、密码登录的界面 然后把这两个一块连接上后端 技术介绍 主要介绍绘制图形人机验证乃个 使用的是canvas,在源码里就有 界面控制主要就是用 表格、表单&#x…

常见的希腊字符及其表示方法

在 Python 中,可以通过使用 Unicode 字符、LaTeX 表示法或符号库(如 SymPy)来表示各种希腊字符。以下是常见的希腊字符及其表示方法: 常见的希腊字符及其 Unicode 字符名称Unicode 名称UnicodeΑAlpha (大写)GREEK CAPITAL LETT…

大量设备如何集中远程运维?用好向日葵的这几个功能很重要

当企业的业务不断发展,不同系统、不同用途的IT设备数量也会不断上升,面对不断扩张的设备规模,IT运维的压力自然也会陡然上升。 面对这种情况,传统的线下运维方式已经不再合适,我们需要引入一个专业的,可以…

SRC实战:无中生有的接口和参数

今天分享的这个漏洞怎么说呢,虽然也是个高危,但是其实挺简单的,一个很eazy的越权,但是我觉得多多少少还是有点意思吧。 0x00 这是一个移动端的应用程序,前面比较常规,模拟器 BP,跑了一下所有…

Linux RHEL 8.6在安装PostgreSql时提示缺少en_US.UTF-8

解释: 这个报错通常表示在Linux RHEL 8.6系统上,系统本身没有安装英文(美国)的UTF-8编码字符集。UTF-8是一种对Unicode字符集进行编码的方式,它被广泛用于支持各种语言的字符显示。 解决方法: 安装英文UT…

赋能心理大模型,景联文科技推出高质量心理大模型数据库

生成式大模型作为当前发展势头最为强劲的人工智能前沿技术,其在临床心理学领域中的创新应用已成为社会关注和医学聚焦的热点之一。 心理大模型在落地应用过程中可能面临的痛点主要包括以下几个方面: 数据隐私与安全:确保敏感的个人信息在模型…

【Java11】变量的初始化和内存中的运行机制

成员变量的初始化和内存中的运行机制 系统加载类或创建类的实例时,系统自动为成员变量分配内存空间,然后自动为成员变量指定初始值。 class Person {public String name; // 实例变量public static int eyeNum; // 类变量 }var p1 Person(); var p2 …

第9篇 区块链安全性:理解和应对常见攻击方式

亲爱的读者,欢迎来到《区块链常识:从小白到顶级行业专家》的第9章。今天,我们将一起探索区块链世界的黑暗面——安全性问题。在这个章节中,我会用最简单的语言和最生动的例子,带你了解一些常见的区块链攻击方式,并教你如何应对它们。 51%攻击 想象一下,如果你的学校里…

2024年亚太中文赛数学建模竞赛B题 洪水灾害的数据分析与预测详细思路解析

2024年亚太中文赛数学建模竞赛B题 洪水灾害的数据分析与预测详细思路解析 解题方法: 首先就是对数据进行数据的预处理包括缺失值和异常值处理,之后就是分析哪些指标与洪水的发生有着密切的关联,可以使用相关性分析(建议使用斯皮尔…

什么是OSPFv2 ?

什么是OSPF ? 开放式最短路径优先 OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 目前针对IPv4协议使用的是OSPF Version 2(RFC2328)&a…

PHP框架Symfony详解

Symfony 是一个用PHP语言编写的开放源代码的Web应用框架,旨在加速Web应用程序的开发过程,提高代码的可维护性和可扩展性。以下是对Symfony框架的详细解析: 一、框架概述 1. 起源与开发者 Symfony由SensioLabs(现为Symfony公司&…

YOLO V7项目使用

YOLO V7项目使用 根据官方论文中提供的项目地址:使用git clone将项目下载到本地。 https://github.com/WongKinYiu/yolov7 git clone https://github.com/WongKinYiu/yolov7 使用pycharm打开项目,根据官方提供的requirement.txt文件下载项目启动所需要的…

Java实习手册(小白也看得懂)

秃狼说 距离俺发布的学习路线已经六个月了,那我给小伙伴的学习周期是四五个月左右,我相信大多的小伙伴已经学习的差不多了。正好赶上暑期实习的阶段,在暑期找到实习就成为暑期的头等大事。 实习经验在校招的起到决定性的作用,所…

Spring Security基本源码解析(超精细版)

一、基本源码解析 1.1 UsernamePasswordAuthenticationFilter 用户名称和密码的过滤器 浏览器发送用户名称和密码 ----》 经过过滤器「UsernamePasswordAuthenticationFitler」 1.2 UsernamePasswordAuthenticationFilter核心方法 重写父类「AbstractAuthenticationProcessing…

spring6中如何不使用@RequestParam注解

RequestParam的使用场景 RequestParam注解可以用在GET和POST请求中,用于指定请求路径或请求体的参数,通常请求格式为表单格式 什么情况下可以不使用RequestParam注解 当Controller方法的参数名与请求中的参数名一致时,可以不用RequestPar…

2.4章节python中字符串类型

在Python中,字符串(String)是一种基本的数据类型,用于表示文本信息。字符串可以包含字母、数字、标点符号或任何Unicode字符。Python中的字符串是不可变的,这意味着一旦创建了字符串,就不能更改字符串中的字…

Build a Large Language Model (From Scratch)附录D(gpt-4o翻译版)

来源:https://github.com/rasbt/LLMs-from-scratch?tabreadme-ov-file https://www.manning.com/books/build-a-large-language-model-from-scratch

C++实现简化 QtBase(4):增加简单实用的事件机制

前面的文章已经实现了许多QObject的功能了: C实现一个简单的Qt信号槽机制 C实现简化版Qt信号槽机制(2):增加内存安全保障 C实现简化版Qt的QObject(3):增加父子关系、属性系统 但是,…

Windows 下载安装ffmpeg

下载地址 https://ffmpeg.org/download.html 测试 管理员方式打开控制台,输入ffmpeg测试 配置环境变量