Docker入门到精通 (5) - 镜像的备份与恢复

114 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

5 迁移与备份

5.1 容器保存为镜像

我们可以通过以下命令将容器保存为镜像

docker commit mynginx mynginx_i

5.2 镜像备份

我们可以通过以下命令将镜像保存为tar 文件

docker  save -o mynginx.tar mynginx_i

5.3 镜像恢复与迁移

首先我们先删除掉mynginx_img镜像 然后执行此命令进行恢复

docker load -i mynginx.tar

-i 输入的文件

执行后再次查看镜像,可以看到镜像已经恢复

5.4、拥有自己的镜像库

有些同学觉的我没有条件搭建自己的镜像库,没有服务器。

阿里推出个人的容器镜像服务,我们可以使用它,来存储我们的镜像

  • 登录阿里云www.aliyun.com/

  • 右上角有个控制台,点击进入,地址是homenew.console.aliyun.com/home/dashbo…

  • 进入后点击左上角,有个抽屉页划出。可以在中间的搜索框输入 容器镜像服务,如图

    • image-20220119103714303
  • 在里面可以上传自己的镜像,下面是我自己的镜像

  • image-20220119103901686

我们公司经常使用的jdk是alpine,它的特点是比较小,但是有镜像的基本功能,使用后生成的镜像也不会臃肿,这次示例采用它来进行重新打包。

注意打包要在安装docker的系统上进行执行

在目录下创建Dockerfile,内容如下:

FROM openjdk:8-jdk-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
ENV LANG en_GB.UTF-8
RUN apk add --update ttf-dejavu && rm -rf /var/cache/apk/*
RUN apk add curl
RUN echo "Asia/Shanghai" > /etc/timezone
RUN wget -O /jmx_prometheus_javaagent.jar https://maven.aliyun.com/repository/public/io/prometheus/jmx/jmx_prometheus_javaagent/0.15.0/jmx_prometheus_javaagent-0.15.0.jar

保存文件,当前目录下执行如下命令创建docker images

docker build -t openjdk-alpine:1.0.0 .

让docker登录到阿里云

docker login --username=xxx  registry.cn-qingdao.aliyuncs.com  --password=xxx

打tag

docker tag openjdk-alpine:1.0.0 registry.cn-qingdao.aliyuncs.com/amoqi-public/openjdk-alpine

上传镜像

docker push registry.cn-qingdao.aliyuncs.com/amoqi-public/openjdk-alpine

之后试试拉取镜像

docker pull registry.cn-qingdao.aliyuncs.com/amoqi-public/openjdk-alpine