• Docker学习(三)——dockerfile,容器的备份与迁移


    一、Dockerfile

    Dockerfile的本质就是由一系列顺序编排的命令和参数组成的脚本,并利用它把我们需要的应用制成一个镜像文件。

    如下图所示,镜像与容器之间的关系:

    前面我们都是直接通过docker pull镜像,然后docker run 的方式直接使用,而现实开发中,我们需要把我们自己的某个微服务模块制成镜像(images)文件,然后创建容器并启动,那么Dockerfile就要使用到了。

    因为整个流程下来都是一样的构建环境和指令,因此使用Dockerfile有一下优势:


    1、对于开发人员:可以为开发团队提供完全一致的开发环境;

    2、对于测试人员:可以直接用开发所制成的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;

    3、对于运维人员:在部署时,可以实现应用的无缝移植。

    Dockerfile的常用命令如下:

     

    二、下面以JDK为例,制作自己的镜像

    1、在宿主机上创建目录

     mkdir -p /usr/local/docker_jdk
    

      

    2、把jdk压缩包放入我们刚才创建的目录,可通过Xftp6从本地上传

    3、创建Dockerfile文件(注意我们这里创建在和jdk压缩包同级目录,下面的命令中使用相对目录,当然,你也可以使用绝对路径找到jdk的压缩包。)

    sudo vim Dockerfile
    

      如下图所示

     

    4、下面就可以使用docker制作镜像了(确保自己的docker已经启动哦)

    docker build-t='jdk1.8' .
    

    注意:最后是有个“.”的,表示使用当前目录的Dockerfile构建;

    -t参数表示制成的镜像名,可任意定义。

     查看镜像,

     可以看到,我们制作的jdk1.8镜像已经有了,同时下载了我们在Dockerfile文件第一行所依赖的centOS7镜像!

    5、使用我们制成的镜像创建并运行容器

     进入该容器,并查看Java版本

     大功告成!这样,我们就可以在任意一台安装了docker的机器使用我们自制的jdk镜像创建运行容器咯!

    三、容器的备份与迁移

    1、将容器保存为镜像

    docker commit 容器名 保存的镜像名
    

      

     可以看到my_jdk1.8_img是我们备份后得到的镜像,而jdk1.8是是我们通过Dockerfile制成的。

    2、备份

    docker save –o 打包的后的文件名.tar 镜像名
    

      

     如果遇到permission denied的错误,这是权限不够导致的,在命令前加sudo即可。

    3、恢复

    docker load –i 你的备份镜像tar包
    

      

    参考https://mp.weixin.qq.com/s/5HK1khkGcTgsH8vKtrR4Pg

  • 相关阅读:
    五、Java对象和类
    四、JavaString字符串
    三、Java语句
    二、Java基本数据类型
    一、Java主类结构
    bat常用命令
    iOS 如何获得app的版本和系统的版本
    英语----时态---将来时态的四种对比
    英语----时态---将来时态的
    英语----时态---现在进行时与过去进行时
  • 原文地址:https://www.cnblogs.com/zrs123/p/14107979.html
Copyright © 2020-2023  润新知