Docker 使用-将容器打成镜像

芝士年糕
• 阅读 867

前言 工作中遇到三方闭源的中间件运行起来某项特性不符合需求,但是镜像提供方偏偏又没有将配置文件挂载出来以供修改,这就导致要使软件符合需求地运行只能进入到容器内部修改配置文件后重启,可谓非常之蛋疼。笔者平时对 Docker 接触不多,好在有同事提到 Docker 支持将运行中的容器重新打包为镜像,于是网上搜索资料,大致整理出以下步骤解决上面的问题,故有本文聊作记录 进入运行中的容器修改其配置文件,修改完成后重启容器 将已经修改过配置文件的容器重新打成镜像,使用该镜像文件创建新的容器即可

使用3A服务器搭建docker容器环境,真方便呀

  1. 容器打成镜像 Docker 提供了 commit 命令支持将容器重新打成镜像文件,其命令格式如下所示 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 1 命令中的选项 [OPTIONS] 有如下候选: Option 功能

-a 指定新镜像作者 -c 使用 Dockerfile 指令来创建镜像 -m 提交生成镜像的说明信息 -p 在 commit 时,将容器暂停 过程示例 执行 sudo docker ps -a 查看本机上的所有容器,此处笔者选择运行中的consul 容器 eda05ad514f8 为例子 Docker 使用-将容器打成镜像 执行 sudo docker commit -a "nathan" -m "create new img" eda05ad514f8 consul:v0 命令以容器为基础生成新的镜像 consul:v0,镜像 id 为 5aeabb78080d2431b2a18809a24edee401d2d65349ce82f32f66b67cf32fc654 Docker 使用-将容器打成镜像 执行 sudo docker image ls 命令查看本机上的 Docker 镜像,可以看到已经成功制作镜像 consul:v0 Docker 使用-将容器打成镜像 2. 镜像打包 镜像文件经常有在服务器之间传输的需求,为此 Docker 提供了镜像打包和镜像加载的命令 2.1 镜像打包为 tar 文件 Docker 的 save 命令可将镜像打包成 tar 文件,其格式如下 OPTIONS 选项只有 -o 用于指定输出到的文件 docker save [OPTIONS] IMAGE [IMAGE...] 1 示例使用 sudo docker save -o consul:v0.tar consul:v0 命令执行完成后在当前目录下生成了 tar 文件

Docker 使用-将容器打成镜像 2.2 从 tar 文件载入镜像 Docker 的 load 命令可从 tar 文件载入镜像,其命令格式如下 OPTIONS 选项可选 -i 用于指定载入的镜像文件 -q 精简输出信息 docker load [OPTIONS] 1 示例使用 由于笔者所有操作都是在同一台机器上,所以先执行 sudo docker image rm 5aeabb78080d 删除之前的镜像

Docker 使用-将容器打成镜像

执行 sudo docker load -i consul:v0.tar 重新载入镜像

Docker 使用-将容器打成镜像

点赞
收藏
评论区
推荐文章
liuzhen007 liuzhen007
3年前
如何监控docker的运行状况
目录前言正文查询结果参数解析前言监控docker容器的运行状态是非常普遍的需求,这就是我们今天的讨论内容。正文部署了docker容器之后,我们经常会需要查看容器的运行状态,这里介绍一个非常好用的命令:dockerstats 如果宿主机上有大量的容器在运行,你会看到所有的容器信息,因此我们也可以查看我们关心的某个容器,假如名字为builde
Stella981 Stella981
3年前
Spring boot在Docker中以JPA方式连接Mysql
背景最近在了解Docker的使用,发现docker在集群部署方面和运维方面有比较大的优势,通过统一的依赖关系,以镜像的方式,将已经打好包的镜像文件,部署到各个节点。如果不用考虑集群的同学,就不用折腾这个,如果想要让应用,有较强的快速部署的能力可以考虑考虑。目标在本机创建两个docker容器,分别为mysql的容器和springbo
Stella981 Stella981
3年前
Kubernetes Pod的数据卷Volume
概述由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题。首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始;第二,在通过一个Pod中一起运行的容器,通常需要共享容器之间一些文件。Kubernetes通过存储卷解决上述的两个问题。在Docker有存储卷的概念卷,但D
Stella981 Stella981
3年前
Docker:dockerfile构建php项目 [八]
一、把项目封装成docker镜像的步骤把项目封装成docker镜像的步骤:1、先运行一个基础容器,手动制作docker镜像2、编写dockerfile,构建镜像3、测试运行二、dockerfile常用指令参考1、dockerfile常用指令:
Stella981 Stella981
3年前
Docker镜像制作
  使用docker原始源为centos制作一个nginx镜像  pull一个centos镜像dockerpullcentos  运行进入容器dockerrunitcentos  容器内安装wgetyumyinstallwget  更换镜像源为阿里wgetO/etc/y
Stella981 Stella981
3年前
Docker面试题
1\.docker如何查看镜像支持的环境变量?   dockerrunIMAFGEenv2\.在使用dockercreate命令创建容器或使用dockerrun创建并运行容器的时候。可以使用m|memory参数来调整容器使用内存的大小。   正确3\.docker需要查询日志应该使用什么命令?   docker
Stella981 Stella981
3年前
Docker学习笔记
docker通过带环境安装来解决开发和运维之间的鸿沟问题,属于云计算方面的技术。也就是说安装的时候把原始环境一模一样地复制过来,开发人员利用Docker来消除协作代码时,“在我的机器上可以正常工作啊"的问题。一次构建,处处运行。dev本地测试完毕后,打包递交docker镜像,而运维则只装一个docker作为鲸鱼,将各个镜像放到鲸鱼背上作为独立的集装箱
Stella981 Stella981
3年前
Docker 镜像 容器 仓库
Docker包括三个基本概念镜像(Image)容器(Container)仓库(Repository)Docker镜像Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其
Stella981 Stella981
3年前
Docker镜像优化:从1.16GB到22.4MB
Docker是一个供软件开发人员和系统管理员使用容器构建、运行和与分享应用程序的平台。容器是在独立环境中运行的进程,它运行在自己的文件系统上,该文件系统是使用docker镜像构建的。镜像中包含运行应用程序所需的一切(编译后的代码、依赖项、库等等)。镜像使用Dockerfile文件定义。术语dockerization或containeriz
镜像供应链安全
容器技术重塑了整个软件供应链。容器镜像将应用及其所依赖项打包,从而使应用可以在不同的计算环境之间快速、可靠地运行。容器镜像已经成为了应用分发的标准。镜像供应链安全应支持: