• Docker系列第06部分:备份与迁移+dockerfile


    1 备份与迁移

    1.1 容器保存为镜像

    1. docker commit pinyougou_nginx mynginx
    2. # pinyougou_nginx是容器名称
    3. # mynginx是新的镜像名称
    4. # 此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器

    1.2 镜像备份

    1. docker save -o mynginx.tar mynginx
    2. # -o 输出到的文件
    3. # 执行后,运行ls命令即可看到打成的tar包.

    1.3 镜像恢复与迁移

    首先先删除掉mynginx镜像,然后执行命令进行恢复

    1. docker load -i mynginx.tar
    2. # -i 输入的文件

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

    再创建容器。

    2 dockerfile

    Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数,其产出为一个新的可以用于创建容器的镜像.

    如何写Dockerfile,Dockerfile 参考文档 | Deepzz's Blog如何写Dockerfile,Dockerfile参考文档,唯爱与美食不可辜负也 :-Dhttps://deepzz.com/post/dockerfile-reference.html

    7.1 dockerfile的demo

    • 在root下创建demo目录

    1. mkdir demo
    2. cd demo
    • 在demo 目录下创建 a文件

    vim a
    • 在某~/demo下创建Dockerfile文件

    vim Dockerfile

     内容为:

    1. # my dockerfile ljh
    2. FROM centos
    3. MAINTAINER ljh
    4. WORKDIR /root/workdir
    5. RUN touch te
    6. ADD a b
    7. ENV key1 "hello"
    8. # 语法解释:
    9. # :代表注释
    10. # FROM centos : 代表依据基本的镜像来创建
    11. # MAINTAINER ljh :代表就是作者是谁
    12. # WORKDIR /root/workdir :代表就是创建容器时进入工作的目录是容器中的/root/workdir目录
    13. # RUN touch te :代表就是RUN 运行命令 运行一个创建空文件te
    14. # COPY ["HI","."] :代表从宿主系统中复制HI 文件到容器系统中工作目录中的当前路径下
    15. # ADD a b :代表从宿主机所在Dockerfile文件的目录下Copy 文件A 到容器中的b文件 b文件的目录为工作目录下。
    16. # ENV key1 "hello" :定义linux中的环境变量。如下:
    17. # 定义一个:key value
    18. # 定义多个:key=value key2=value2
    • 创建自定义镜像

    1. docker biuld -t mycentos .
    2. # docker build : 表示通过Dockerfile文件来创建镜像
    3. # -t mycentos 表示 给与镜像的名称和版本 为:mycentos:lasted (lasted可以不写)
    4. # . 表示从当前目录下进行加载Dockerfile文件

    • 查看是否打包镜像成功

    • 测试创建容器:

    docker run -di --name=mycentosheh mycustomcentos
    • 连接容器

    [root@localhost demo]# docker exec -it mycentosheh /bin/bash

     注意: 进入目录即为:/root/workdir

     在目录下有 b文件和 te文件

     输入:echo $key1 查看环境变量的值结果

    3 springboot微服务部署

    在微服的世界中,使用springboot来开发的微服务架构,使用dockerfile 来部署应用。

    • 在本地开发完成微服系统 打包,将其copy到linux系统中

    • 创建dockefile文件上图:

    1. #my dockerfile ljh
    2. FROM java:8
    3. MAINTAINER ljh
    4. ADD demo-0.0.1-SNAPSHOT.jar app.jar
    5. # ENTRYPOINT ["java","-jar","/app.jar"] 表示 执行命令: 整个命令都只能有一个ENTRYPOINT
    6. ENTRYPOINT ["java","-jar","/app.jar"]
    7. EXPOSE 8080
    java -jar app.jar

     EXPOSE 8080 发布端口为:8080

    • 构建镜像

    docker build -t demoappimage .
    • 创建容器

    docker run -di --name=myapp1 -p 8080:8080 
    • 效果

  • 相关阅读:
    AI图书推荐:AI股票投资入门手册
    jmeter单接口和多接口测试
    Android JetPack~ DataBinding(数据绑定)(一) 集成与使用
    Windows程序相同程序实现运行互斥
    QT小记:QT程序异常结束的可能原因
    【Java基础】JDK8-17新特性
    违约金过高”的认定依据
    JavaScript 62 JavaScript 版本 62.3 JavaScript ES6
    JavaScript大作业(餐厅美食网站设计与实现)
    基于虚拟机源码分析move合约(零):Move虚拟机执行原理
  • 原文地址:https://blog.csdn.net/qq_39237205/article/details/126501986