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

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参考文档,唯爱与美食不可辜负也 :-Dhttps://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文件

  • 查看是否打包镜像成功

  • 测试创建容器:

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文件上图:

#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 
  • 效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

流浪地球开机动画包zip_影视日报|合家欢动画电影quot;许愿神龙quot;定档1.15;流浪地球加长版定档11.26...

1、合家欢动画电影"许愿神龙"定档1.15动画电影《许愿神龙》正式定档2021年1月15日,并发布定档海报。2、白客等万万兄弟助力易小星"沐浴之王"由易小星执导,彭昱畅、乔杉领衔主演,卜冠今、苇青主演,金世佳友情出…

Git 分布式版本控制工具01:Git介绍+下载+安装

1. 前言 1.1 什么是Git Git 是一个分布式版本控制工具,通过Git 仓库来存储和管理源代码文件文件。 在IDEA开发工具中可以集成Git: 集成后在IDEA中可以看到Git相关图标: 可以通过启动两个IDEA窗口模拟两个开发人员来展示Git的使用&#xf…

无法解析的外部符号,无法解析的外部命令

1.这个是因为有相关的lib包没有被引用进去 解决办法: 1. 2. 转载于:https://www.cnblogs.com/hcfan/p/6638980.html

Android Adb 源码分析

扭起屁股得意洋洋 最近,我负责的项目因为临近量产,把之前的userdebug版本关闭,转成了user版本,增加selinux的权限,大家都洋溢在项目准备量产的兴奋和喜悦之中不能自拔 谁知,好景不长,user版本…

kvm虚拟化_KVM 虚拟化环境搭建 - WebVirtMgr

前文《KVM 虚拟化环境搭建 - ProxmoxVE》已经给大家介绍了开箱即用的 PVE 系统,PVE 是方便,但还是有几点问题:第一:始终是商用软件,虽然可以免费用,但未来版本还免费么?商用的法律风险呢&#x…

Git 分布式版本控制工具02:Git代码托管服务列表与使用

1常用的Git代码托管服务 Git中存在两种类型的仓库,即本地仓库和远程仓库。 Git远程仓库中比较常用的有GitHub、码云、GitLab等。 名称网址说明gitHubGitHub: Where the world builds software GitHub一个面向开源及私有软件项目的托管平台,因为只支持…

Android系统root破解原理分析

上一篇文章 Android adb 源码分析 理论基础 root破解过程的终极目标是替换掉系统中的su程序。但是要想替换掉系统中su程序本身就是需要root权限的,怎样在root破解过程中获得root权限,成为我们研究的重点了。下面我们先清点一下我们需要破解系统情况&a…

常见字母缩写

1、ODBC:Open Database Connectivity,开放数据库连接; 2、TCP:Transport Control Protocol,传输控制协议; 3、URL:统一资源定位器; 4、HTTP:Hypertext Transfer Protoco…

基于Springboot外卖系统19:用户地址+默认收货地址

1. 用户地址簿功能 1.1 需求分析 地址簿,指的是移动端消费者用户的地址信息,用户登录成功后可以维护自己的地址信息。 同一个用户可以有多个地址信息,但是只能有一个默认地址。 对于地址簿管理,我们需要实现以下几个功能&#…

python获取返回值_python 调用 shell ,获取返回值和返回信息

网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息。 def run_linux_cmd_quiet(i_cmd, i_nohup0): l_func_name__name__ . sys._getframe().f_cod…

基于Springboot外卖系统20:前端菜品展示+菜品数量查询

1 菜品展示 1.1 需求分析 用户登录成功后跳转到系统首页,在首页需要根据分类来展示菜品和套餐。如果菜品设置了口味信息,需要展示 按钮,否则显示按钮。 1.2 前端页面分析 在开发代码之前,需要梳理一下前端页面和服务端的交互过…

python 播放声音_如何用Python播放声音?

对于Windows,可以使用winsound。它内置import winsound winsound.PlaySound(sound.wav, winsound.SND_FILENAME) 应该能够在Linux上使用ossaudodev:from wave import open as waveOpen from ossaudiodev import open as ossOpen s waveOpen(tada.wav,rb…

Android Flash分区大小查看

正常的8G Flash有多少可以用的 这样算吧: 硬盘和U盘厂家的算法:8GB*10008000MB*10008000000KB*10008000000000B电脑系统的算法:8000000000B/10247812500KB/10247629.4MB/10247.45GB 所以U盘在7.4G左右是正常的,是电脑系统算法和厂…

flash动画设计期末作业_「2019年下学期」第二十五二十六节:期末作品三-吉祥物设计...

初心伟大的艺术品不必追随潮流,他本身就能引领潮流。课前准备软件安装【2019(上)】《三维建模与动画设计》【2019年下学期】第一节:选修介绍及选修人数确定【2019年下学期】第二节:2D&3D设计之百事可乐图标设计【2019年下学期】第三四节&…

Angular2升级到Angular4

angular4终于在两天前发布了正式版本,那么怎么升级呢?其实angular2和angular4之间属于平滑过渡,并不像1和2之间颠覆性的重写代码. npm uninstall -g angular/clinpm cache cleannpm install -g angular/clilatestrm -rf node_modules dist # use rmdir /S/Q node_modules dist…

YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

来源:https://arxiv.org/abs/2207.02696 代码:https://github.com/WongKinYiu/yolov7 0. Abstract YOLOv7 surpasses all known object detectors in both speed and accuracy in the range from 5 FPS to 160 FPS and has the highest accuracy 56.8…

在git上push代码时缺少Change-Id

问题 使用Git提交代码时,遇到missing Change-Id in commit message footer 会在提交失败信息中提示如何操作,缺失change-Id 会出现如下提示信息,Hint: To automatically insert Change-Id, install the hook: gitdir(gitrev−parse−−git−dir);scp−p−P29418namegit.co.co…

如何把一个网页生成一个快捷方式在桌面?_如何打造一个简洁、高效的桌面?

都2020年了,你的桌面仍是这样的? 或是这样的? 但当然你也见过这样的: 你当然会好奇,没有各种快捷方式、任何文件或文件夹的工作桌面,使用起来岂不效率低下?然则非也。我认为高效的工作得从舒服的…

Android ADB 源码分析(三)

前言 之前分析的两篇文章 Android Adb 源码分析(一) 嵌入式Linux:Android root破解原理(二) 写完之后,都没有写到相关的实现代码,这篇文章写下ADB的通信流程的一些细节 看这篇文章之前,请先阅读 Linux…