Docker容器从镜像恢复代码的操作步骤

 更新时间:2021年03月19日 14:40:02   作者:李耳王  
这篇文章主要介绍了Docker容器从镜像恢复代码的操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

有时候代码丢失了需要从容器运行的镜像中恢复出所需代码,此时仅需在容器运行的服务器进行简单的几步操作,就能提取出打包镜像时使用的代码

查看所有容器:

docker container ls -a

根据容器id进入到指定容器:

docker exec -ti id /bin/bash

拷贝容器内目录到服务指定文件夹:

docker container cp id:/usr/local/tomcat/webapps/province-admin /home/test/province-admin

经过以上3布就已经把容器内代码提取到了服务器指定目录,从服务器将代码下载到本地就可以查看所需代码了

补充:docker数据卷容器备份、恢复超详细!小白也可以!!!

在日常生活中,把容器和本地物理机做了目录映射直接存在本地,那么我们只需要对本地的硬盘定期备份就好了,但如果没有这个映射的情况下,备份和恢复该如何处理呢?

首先我们创建一个需要备份的数据卷,

docker run -itd -v /opt/zz --name c1 centos /bin/bash

-itd 是以交互的方式运行,d是后台运行

-v 是指定容器内的数据卷,如果指定的数据卷不存在,会自动创建

–name 自定义名字

/bin/bash 交互命令以/bin/bash来

为了验证数据卷容器的备份功能,在挂载的/opt/zz目录下创建一个c11文件,并写入内容"woda"。

[root@160e0646396d zz]# touch c11.txt
[root@160e0646396d zz]# echo "woda" > c11.txt 
[root@160e0646396d zz]# cat c11.txt
woda

然后为了给数据卷容器备份,使用 –volumes-from 来标记需要备份的数据卷,并从主机挂载当前目录到容器的/v3目录。

$(pwd)是docker支持的指定当前目录的方法,了解linux基本命令的会发现,linux查看当前目录就是pwd命令。

容器启动后,在当前目录下生成的c23.tar文件就是/opt/zz容器卷的备份文件。

这样,数据卷容器中的数据就备份完成。

整个实践过程如下:

[root@client ~]# docker run --volumes-from c1 -v $(pwd):/v3 centos tar cvf /v3/c23.tar /opt/zz
tar: Removing leading `/' from member names
/opt/zz/
/opt/zz/c11.txt

最后我们就可以看到我们之前在需要备份的容器的数据卷里的内容了,/opt/zz/c11.txt

–volumes-from < Container >: 连接要备份数据的容器

-v $(pwd):/v3:挂载当前路径到容器centos 容器,数据将会备份到此路径

centos: 非常小的镜像

tar cvf /v3/c23.tar /opt/zz: 将 /opt/zz 路径下的文件打包到 c23.tar

二 恢复

备份最终也是为了可以恢复,否则备份就没有意义了,Docker恢复备份也很简单,只需要2步即可。

首先,创建一个带有空数据卷的容器/opt/x2。

docker run -itd -v /opt/x2 --name c3 centos /bin/bash
docker run -itd -v /opt/x2 --name c3 centos /bin/bash

然后,创建另一个容器,挂载data1容器卷中的数据卷,并使用untar解压备份文件到挂载的容器卷中。

docker run --volumes-from c3 -v $(pwd):/v3 centos tar xvf /v3/c23.tar

这个时候,之前备份的数据卷容器的数据已经恢复到了容器/opt/x2中了。

为了查看和验证恢复的数据,我们可以再启动一个容器挂载/opt/x2容器卷来查看。

整个实践过程如下:

[root@client ~]# docker run --volumes-from c3 -v $(pwd):/v3 centos tar xvf /v3/c23.tar
opt/zz/
opt/zz/c11.txt

最后我们就可以看到我们之前备份的c11.txt,现在已经恢复到c3这个容器中的数据卷了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Docker如何制作自己镜像并上传dockerhub

    Docker如何制作自己镜像并上传dockerhub

    这篇文章主要介绍了Docker如何制作自己镜像并上传dockerhub,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 利用Volume在主机和Docker容器文件传输的方法

    利用Volume在主机和Docker容器文件传输的方法

    这篇文章主要介绍了利用Volume在主机和Docker容器文件传输的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Docker配置代理的详细步骤记录

    Docker配置代理的详细步骤记录

    docker是一个流行的容器化平台,它让应用程序可以在操作系统层面上隔离运行,从而提供了更高的可移植性和可靠性,这篇文章主要给大家介绍了关于Docker配置代理的详细步骤,需要的朋友可以参考下
    2024-08-08
  • 基于Docker实现Redis主从+哨兵搭建的示例实践

    基于Docker实现Redis主从+哨兵搭建的示例实践

    本文主要介绍了基于Docker实现Redis主从+哨兵搭建的示例实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • docker部署CASSANDRA全过程

    docker部署CASSANDRA全过程

    本文介绍了如何使用Docker安装和运行Apache Cassandra,包括创建数据表、加载数据、以及进行交互式查询的基本步骤
    2025-01-01
  • Docker镜像的制作与使用浅析

    Docker镜像的制作与使用浅析

    这篇文章主要介绍了Docker镜像的制作与使用浅析的相关资料,需要的朋友可以参考下
    2022-11-11
  • CentOS7.3中Docker的安装教程

    CentOS7.3中Docker的安装教程

    Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。这篇文章主要给大家介绍CentOS7.3中Docker的安装教程,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2017-04-04
  • Docker 的健康检测机制

    Docker 的健康检测机制

    这篇文章主要介绍了Docker 的健康检测机制。即检验进程是否存活,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Docker容器中文件与本地相互复制拷贝方式

    Docker容器中文件与本地相互复制拷贝方式

    这篇文章主要介绍了Docker容器中文件与本地相互复制拷贝方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • docker 使用CMD或者ENTRYPOINT命令同时启动多个服务

    docker 使用CMD或者ENTRYPOINT命令同时启动多个服务

    这篇文章主要介绍了docker 使用CMD或者ENTRYPOINT命令同时启动多个服务,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论