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

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

1 备份与迁移


1.1 容器保存为镜像


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


1.2 镜像备份


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


1.3 镜像恢复与迁移


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


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


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


再创建容器。


2 dockerfile


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


如何写Dockerfile,Dockerfile 参考文档 | Deepzz's Blog

如何写Dockerfile,Dockerfile参考文档,唯爱与美食不可辜负也 :-D

https://deepzz.com/post/dockerfile-reference.html


7.1 dockerfile的demo


  • 在root下创建demo目录


mkdir demo
cd demo


  • 在demo 目录下创建 a文件


vim a


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


vim Dockerfile


内容为:


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


  • 创建自定义镜像


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


bee586f6f95e4f859ec6eb03a196b87f.png


  • 查看是否打包镜像成功


0726c9f864db43698544bc5dcdd3d1b9.png


  • 测试创建容器:


docker run -di --name=mycentosheh mycustomcentos


  • 连接容器


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


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


1812330cb4a4488faafe4399ebee6d2c.png


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


22c9672ca20443cba2c6a9df0f2aba24.png


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


8b816bac591d4fa49dec95010c65fb02.png


3 springboot微服务部署


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


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


b2f776c35ac64b8b8f4d8f3fb49c6af9.png


  • 创建dockefile文件上图:


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


java -jar app.jar


EXPOSE 8080 发布端口为:8080


  • 构建镜像


docker build -t demoappimage .


  • 创建容器


docker run -di --name=myapp1 -p 8080:8080 


  • 效果


d6b77f9baaed4206b05ec74d5572c0c0.png

目录
相关文章
|
2月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
237 57
|
2月前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
233 58
|
5月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
266 28
|
6月前
|
Kubernetes Docker 容器
Kubernetes与Docker参数对照:理解Pod中的command、args与Dockerfile中的CMD、ENTRYPOINT。
需要明确的是,理解这些都需要对Docker和Kubernetes有一定深度的理解,才能把握二者的区别和联系。虽然它们都是容器技术的二个重要组成部分,但各有其特性和适用场景,理解它们的本质和工作方式,才能更好的使用这些工具,将各自的优点整合到生产环境中,实现软件的快速开发和部署。
202 25
|
9月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
458 76
|
7月前
|
存储 缓存 Docker
docker: No space left on device处理与迁移目录
通过以上方法,可以有效地管理 Docker 的磁盘使用情况,并确保 Docker 运行环境的稳定性和效率。
649 34
|
10月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
11940 38
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
9月前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
145 9
|
10月前
|
应用服务中间件 PHP nginx
Docker-compose 编排lnmp(dockerfile) 完成Wordpress
通过使用Docker Compose,我们可以轻松编排LNMP环境并部署WordPress。本文详细介绍了各组件的Dockerfile和配置文件编写,并通过docker-compose.yml文件实现了整个环境的自动化部署。这种方法不仅简化了部署过程,还提高了环境的可移植性和一致性。希望本文能帮助你更好地理解和使用Docker Compose来管理和部署复杂的应用程序。
528 4
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
1136 17
Docker镜像-基于DockerFile制作编译版nginx镜像