镜像

Docker数据持久化与容器迁移

限于喜欢 提交于 2019-12-29 09:57:24
上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据。如果想做到数据持久化,Docker提供数据卷(Data volume)或者数据容器卷来解决问题,另外还可以通过commit提交一个新的镜像来保存产生的数据。那么,来一一看下各自的使用方法。 一、数据卷 数据卷特性: 可以绕过UFS文件系统,为一个或多个容器提供访问。 完全独立于容器的生存周期,因此不会在删除容器时删除其挂在的数据卷。 数据卷特点: 数据卷在容器启动初始化时,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中。 数据卷可以在容器直接共享和重用。 可以直接对数据卷里的内容进行修改。 数据卷的变化不会影响镜像的更新。 卷会一直存在,即使挂载数据卷的容器已经删除。 1.数据卷使用 创建并挂载数据卷: $ sudo docker run -itd --name ubuntu_test1 -v /container_data:/data ubuntu 注:container_data为宿主机目录,/data是容器中目录,目录不存在会自动创建 $ sudo docker inspect ubuntu_test1 "Mounts": [ { "Source": "/container_data", "Destination": "

Docker中容器的备份、恢复和迁移

会有一股神秘感。 提交于 2019-12-29 09:57:15
1. 备份容器 首先,为了备份Docker中的容器,我们会想看看我们想要备份的容器列表。要达成该目的,我们需要在我们运行着Docker引擎,并已创建了容器的Linux机器中运行 docker ps 命令。 # docker ps 在此之后,我们要选择我们想要备份的容器,然后去创建该容器的快照。我们可以使用 docker commit 命令来创建快照。 # docker commit -p 30b8f18f20b4 container-backup 该命令会生成一个作为Docker镜像的容器快照,我们可以通过运行 docker images 命令来查看Docker镜像,如下。 # docker images 正如我们所看见的,上面做的快照已经作为Docker镜像保存了。现在,为了备份该快照,我们有两个选择,一个是我们可以登录进Docker注册中心,并推送该镜像;另一个是我们可以将Docker镜像打包成tar包备份,以供今后使用。 如果我们想要在 Docker注册中心 上传或备份镜像,我们只需要运行 docker login 命令来登录进Docker注册中心,然后推送所需的镜像即可。 # docker login 172.16.101.192 # docker tag a25ddfec4d2a arunpyasi/container-backup:test # docker push

使用 Docker 搭建 Java Web 运行环境

ぃ、小莉子 提交于 2019-12-29 09:56:59
目录[-] 原料 前提条件 安装 Docker 做法 下载镜像 启动容器 安装相关软件 安装 JDK 安装 Tomcat 设置环境变量 编写运行脚本 退出容器 创建 Java Web 镜像 启动 Java Web 容器 品尝 总结 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它。Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器、镜像等,随后将使用 Docker 搭建一个 Java Web 运行环境,最后将对本文做一个总结。 我们先来回顾一下传统虚拟化技术的体系架构: 可见,我们在宿主机的操作系统上,可安装了多个虚拟机,而在每个虚拟机中,通过虚拟化技术,实现了一个虚拟操作系统,随后,就可以在该虚拟操作系统上,安装自己所需的应用程序了。这一切看似非常简单,但其中的技术细节是相当高深莫测的,大神级人物都不一定说得清楚。 凡是使用过虚拟机的同学,应该都知道,启动虚拟机就像启动一台计算机,初始化过程是相当慢的,我们需要等很久,才能看到登录界面。一旦虚拟机启动以后

手把手带你学Docker:Docker的常用命令(三)

痴心易碎 提交于 2019-12-28 17:35:26
导语 本篇文章是将一些常用的Docker命令记录下来,足够平时的开发使用了。 1,Docker环境信息 info 命令 用于检测Docker是否正确安装,一般结合docker version命令使用。 $ docker info version 命令 查看docker的版本号。 $ docker version 2,容器基础运维操作 attach 命令 docker attach命令对应开发者很有用,可以连接到正在运行的容器,观察容器的运行状况,或与容器的主进程进行交互。 $ docker attach 容器id inspect 命令 用于查看镜像和容器的详细信息,默认会列出全部信息,可以通过–format参数来指定输出的模板格式,以便输出特定信息。 $ docker inspect [ OPTIONS ] NAME | ID [ NAME | ID .. . ] OPTIONS说明: -f :指定返回值的模板文件 -s :显示总的文件大小 –type :为指定类型返回 JSON 查看容器的信息 (ps) docker ps 命令 :可以查看容器的 CONTAINER ID 、 NAME 、 IMAGE NAME 、端口开启及绑定、容器启动后执行的 COMMNAD 。 $ docker ps # 默认显示当前正在运行中的container $ docker ps -a #

Docker Toolbox安装

淺唱寂寞╮ 提交于 2019-12-28 17:08:02
公司最近搭建docker环境,其中会遇到一些问题,在这里记录一下。 先来了解一下docker 一、基本概念 1.Docker中基本概念 镜像(Image) 提到镜像,有对操作系统有一定认知的都知道,镜像是一个压缩的ISO文件,里面包含操作系统运行所需要的运行环境以及库文件,配置文件等等。从认识上简单的来说,镜像就是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。而docker镜像相当于是一个root文件系统,除了提供容器运行所需要的程序,库,资源,配置等文件还包括运行时准备的一些配置参数(匿名卷,环境变量,用户等)。镜像不包含任何动态数据,在构建完成之后本层镜像就不会被改变。 docker镜像在设计之时,就充分使用Union FS 技术,并被设计为分层存储的架构。所以与传统意义上的镜像有着很大不同,它并非体现为一个打包的文件,而是由一组文件系统组成,或者说由多层文件系统联合组成。 镜像构建时,由下网上一层一层构建,每一层构建完成后就不会发生改变,后一层上对上一层的改变都发生在本本层。删除上一层文件也只是标记删除,并不会影响上一层。所以,构建镜像时,每一层尽量包含本层需要的东西,其他额外的东西应该在构建结束前清理掉。 容器(Container) 容器的实质是进程,是镜像的实例化, 但与直接在宿主执行的进程不同,容器进程运行与属于自己独立的命名空间

docker在windows下的安装

我的梦境 提交于 2019-12-28 17:07:19
Docker for Windows会默认包含两个引擎containers(linux和windows)   1. 下载 Docker for Windows,https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows   2. 查看下是否开启了Hyper-V功能,如果没有可以在“启用或关闭windows功能” 中添加Hyper-V 功能,当然你也可以不用关心,docker安装过程中也会检查,如果没有则默认添加启动,不过可以趁着等待下载docker的时间直接把这步做了,安装Hyper-V之后可能需要重启系统。   3. 安装完成之后,你可以查看Hyper-V管理器,如果安装正常,会默认创建一个linux虚拟机:   安装成功之后我们就可以对其进行相应的设置   1. 右击小鲸鱼图标,点击Settings   2. 设置界面如下,其中Shared Drives 可以设置我们的对应映射驱动盘,保证C盘选中,再选中你应用所在盘符。Advanced选项中你可以设置docker对应的CPU,内存占用资源。Netword主要是当前的Docker IP信息。Proxies可以设置对应的代理信息。Daemon 主要是设置对应的仓储和对应的仓储镜像站点(和docker镜像区分开,这个是仓储对应的镜像

日常打包纪要

て烟熏妆下的殇ゞ 提交于 2019-12-28 13:50:29
记个笔记,以后自己查阅 日常打包纪要 build Dockerfile 推送镜像 1. 在已经部署了镜像的机器上获取镜像 2. 在将要使用的机器上部署需要的镜像 build Dockerfile docker build -f Dockerfile -t redis-openjdk:V1.0.0 . docker save -o ./databaseV1.0.0.tar database:V1.0.0 docker rmi database:V1.0.0 curdate = " ` date +%Y%m%d%H%M ` " mkdir -p dbt-toolT ${curdate} /images mv databaseV1.0.0.tar dbt-toolT ${curdate} /images/ mv config dbt-toolT ${curdate} tar -zcvf ./dbt-toolT ${curdate} .tar.gz ./dbt-toolT ${curdate} scp -r ./*.tar.gz $ '/opt/mount/\344\272\247\345\223\201\346\265\213\350\257\225\347\211\210\346\234\254/0700-dts' 推送镜像 docker tag SOURCE_IMAGE[:TAG]

Jenkins安装

左心房为你撑大大i 提交于 2019-12-28 05:38:01
一,Docker下安装Jenkins 1,拉取镜像: docker pull jenkinsci/blueocean 创建容器: docker create --name jenkins –u root –p 8889:8080 --privileged = true –v jenkins-data:/var/jenkins_home –v /var/run/docker.sock:/var/run/docker.sock –v /home/jenkins:/home docker.io/jenkinsci/blueocean 启动容器: docker start jenkins 输入http://192.168.101.64:8889 初次运行Jenkins会经过一个安装过程,一般情况使用默认配置,下一步安装即可,其中一步需要输入密码,如下图: 出现上边的画面需要进入Jenkins容器查看密码,并将密码拷贝到上图输入框中: docker exec –it jenkins /bin/bash cat /var/jenkins_home/secrets/initialAdminPassword 二,Jenkins全局工具配置 本项目使用Jenkins需要配置Jdk1.8、Git、maven。 //直接选择自动安装即可 1,Maven安装 //用于下载依赖和执行maven构建命令

macOS WTG (Win to Go) 安装流程

回眸只為那壹抹淺笑 提交于 2019-12-28 02:39:22
对于容量小的Mac,WTG这种安装Windows的方案,是一个很不错的选择。 准备 Windows原版镜像iso文件 可通过 微软官网 或 i tell you 第三方网站下载。 Windows系统的电脑 真机或者虚拟机。 固态硬盘(64G以上) 推荐使用固态硬盘安装系统,机械太慢了。 U盘(8G以上) 用来放系统镜像(如果电脑硬盘不够大的话)和驱动文件。 写入镜像 1、下载工具 这里推荐使用 WTG 辅助工具 。 2、写入镜像 打开软件选择镜像和要写入的固态硬盘,其它保持 默认 ,然后点击 创建 即可。 下载驱动 打开 启动转换助理 ,点击菜单栏的 操作 -> 下载Windows支持软件 ,即可下载。 下载完成后在用户根目录下可以找到,将下载的驱动文件夹拷贝到U盘中备用。 安装系统 1、写入好镜像后,重启系统。 2、长按 option 键,选择从固态盘启动。 3、接下来的步骤就和安装普通的Windows一样了。 4、开机后插入U盘,找到驱动程序文件夹,双击 setup.exe 安装即可。 来源: CSDN 作者: Plain Dev 链接: https://blog.csdn.net/PlainDev/article/details/103734799

树莓派Raspberry Pi 3B+ 安装OpenWrt及配置(有线、无线联网,AP)

Deadly 提交于 2019-12-28 01:43:58
OpenWrt官方介绍 OpenWrt项目是一个针对嵌入式设备的Linux操作系统。OpenWrt不是一个单一且不可更改的 固件 ,而是提供了具有软件包管理功能的完全可写的文件系统。这使您可以不使用供应商提供的应用程序选择和配置,而是通过使用软件包来定制设备以适应任何应用程序。对于开发人员来说,OpenWrt是一个无需围绕它构建完整固件就能开发应用程序的框架; 对于普通用户来说,这意味着拥有了完全定制的能力,能以意想不到的方式使用该设备。 关于固件(来源于wikipedia) 固件(firmware),是一种嵌入在硬件设备中的软件。通常它是位于特殊应用集成电路(ASIC)或可编程逻辑器件(PLD)之中的闪存或EEPROM或PROM里,有的可以让用户更新。可以应用在非常广泛的电子产品中,从遥控器、计算器到电脑中的键盘、硬盘,甚至工业机器人中都可见到它的身影。 顾名思义,固件的所在是位于软件和硬件之间的。像软件一样,他是一个被电脑所运行的程序。然而它是对于硬件内部而言更加贴近以及更加重要的部分,而对于外在的世界而言较无重要的意义。 实际而言,一般硬件可以透过对固件的升级提升其性能及可靠性。 系统选择 OpenWrt官网提供了稳定版releases和snapshots快照两种镜像,本人首先安装了稳定版系统,发现该系统好像没有自带无线网卡驱动,于是换装了snapshots系统镜像