特别声明:

  博文主要是学习过程中的知识整理,以便之后的查阅回顾。部分内容来源于网络(如有摘录未标注请指出)。内容如有差错,也欢迎指正!

=============系列文章=============

1. Docker学习(一): 基本概念

2. Docker学习(二): 镜像的使用与构建

3. Docker学习(三): Dockerfile指令介绍

4. Docker学习(四): 操作容器

5. Docker学习(五): 仓库与数据管理

=================================

一、公有仓库操作

  登录:docker login命令输入用户名、密码和邮箱来完成注册和登录。注册成功后,本地用户目录的.dockercfg中将保存用户的认证信息。

  搜索:docker search查找官方仓库中的镜像

  下载:docker pull 下载镜像到本地

  推送:docker push推送镜像到Docker Hub

二、私有仓库

  docker-regiestry是官方提供的工具,可以用于构建私有的镜像仓库。

  安装运行:官方registry获取镜像运行

    示例:docker run -d -p 5000:5000 registry

    默认情况下,仓库会被创建在容器的/var/lib/registry(v1中是/tmp/registry), 可以通过-v参数将镜像文件存放在本地的指定路径。

  标记镜像:docker tag IMAGE[:TAG] [REGISTRYHOST/] [USERNAME/]NAME[:TAG],标记后可以push到私有仓库,让其他人下载。

    

三、仓库配置文件config_sample.yml

  common:基础配置

  local:存储数据到本地文件系统

  s3:存储数据到AWS S3中

  dev:使用local模板的基本配置

  test:单元测试使用

  prod:生产环境配置

  gcs:存储数据到Google的云存储

  swift:存储数据到OpenStack Swift服务

  glance:存储数据到OpenStack Glance服务,本地文件系统为后备

  glance-swift:存储数据到OpenStack Glance服务,Swift为后备

  elliptics:存储数据到Elliptics key/value存储

  默认情况下使用模板dev,要使用某个模板作为默认值,可以添加SETTINGS_FLAVOR到环境变量中,如export SETTINGS_FLAVOR=dev

  配置文件支持从环境变量中加载值,格式为:_env:VARIABLENAME[:DEFAULT]

四、数据卷

  数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除

  注:数据卷的使用,类似于Linux下对目录或文件进行mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看到的是挂载的数据卷。

  

  创建数据卷

    -v:创建一个数据卷并挂载到容器里

        示例:docker run -d -v /webapp training/webapp COMMAND

      挂载本地主机目录作为数据卷

        示例1:docker run -d -v /src/webapp:/opt/webapp

        示例2:docker run -d -v /src/webapp:/opt/webapp:ro (:ro指定为只读)

      挂载本地主机文件作为数据卷:

        示例:docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash

  删除数据卷:

    docker rm -v:在删除容器的同时移除数据卷

  查看数据卷的信息:

    docker inspect web

五、数据卷容器

  一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。一个正常的容器,专门用来提供数据卷供其他容器挂载的。

  创建数据卷容器:

    docker run -d -v /dbdata --name dbdata IMAGE COMMAND

  使用数据卷容器:

    docker run -d --volumes-from dbdata --name db1 IMAGE

  注:可以使用超过一个的--volumes-from参数来指定从多个容器挂载不同的数据卷。也可以从其他其他挂载了数据卷的容器来级联挂载数据卷。--volumes-from参数所挂载数据卷的容器自己并不需要保持在运行状态

  

  备份数据卷:

    docker run --volumes-from dbdata -v ($pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata

    容器启动后,使用了tar命令来将dbdata卷备份到容器中/backup/backup.tar文件

  恢复数据卷:

    创建一个带有空数据卷的容器dbdata2

      docker run -v /dbdata --name dbdata2 ubuntu /bin/bash

    创建另一个容器,挂载dbdata2容器卷中的数据卷,并使用untar解压备份文件到挂载的容器卷

      docker run --volumes-from dbdata2 -v ($pwd):/backup IMAGE tar xvf /backup/backup.tar

    

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

参考:

1.《docker_practice》

Docker学习(五): 仓库与数据管理的更多相关文章

  1. Docker学习-私有仓库docker-registry的使用

    1.从docker官方仓库下载registry 2.将registry放进容器内 3.在官方下载镜像上传本地仓库 4.私有仓库docker-registry使用的常见问题 5.配置阿里云镜像加速器 假 ...

  2. Docker学习笔记之从镜像仓库获得镜像

    0x00 概述 之前我们说到了,Docker 与其他虚拟化软件的一处不同就是将镜像管理纳入到了功能之中.实现虚拟化只是程序能够无缝移植的一部分,而有了镜像管理,就真正取代了我们在移植过程中的繁琐操作. ...

  3. docker学习笔记(2)- 仓库

    Docker仓库是镜像存储.分发.部署的关键,制作好应用程序镜像后上传到仓库,使用Docker daemon从仓库拉取后运行,我们可以使用官方共有仓库docker hub或者搭建私有仓库 Docker ...

  4. docker学习(8) 在mac机上搭建私有仓库

    docker的私有仓库类似maven的私服,一般用于公司内部搭建一个类似docker hub的环境,这样上传.下载镜像速度较快,本文将演示如何在mac上利用docker-machine搭建无需SSL证 ...

  5. docker学习11-上传本地镜像到镜像仓库

    前言 在本地自己制作用过镜像后,上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境. 如果公开的话,别人也可以用你的镜像快速搭建环境,类似于 GitHub 本地代码上传到代码仓库,再从仓库拉取代 ...

  6. Docker学习(六): 网络使用与配置

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  7. Docker学习笔记总结

    Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/   一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...

  8. DOCKER学习心得

    原文:DOCKER学习心得   前言: Docker的主要学习心得来源于<docker技术入门与实战> --2019.1.1->2019.1.5 la 着重从基础部分--实例分析-- ...

  9. Docker 学习入门

    一.Docker 简介 1.什么是 Docker Docker 是使用最广泛的开源容器引擎,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可 ...

随机推荐

  1. Cannot modify header information问题的解决方法【新浪云经常遇到的错误】

    我做了一个统一的出错提示函数,在函数执行里面,先处理出错的地址写入cookie以方便用户登陆以后可以直接跳转到要执行的这个页面,可是发现在服务器上测试时,竟然提示本地没有出现的错误: Warning: ...

  2. 【Oracle 12c】最新CUUG OCP-071考试题库(55题)

    55.(13-3) choose the best answer: Which statement is true regarding the SESSION_PRIVS dictionary vie ...

  3. Java多线程编程 — 锁优化

      阅读目录 一.尽量不要锁住方法 二.缩小同步代码块,只锁数据 三.锁中尽量不要再包含锁 四.将锁私有化,在内部管理锁 五.进行适当的锁分解 正文 并发环境下进行编程时,需要使用锁机制来同步多线程间 ...

  4. 动态代理(CGLIB实现)

    CGLIB(Code Generation Library)是一个开源项目.可以直接对类进行增强,而不需要像JDK的动态代理,需要增强的类必须实现某接口 在使用Spring框架时,因为Spring框架 ...

  5. scrapy 资料整合

    先看看scrapy的框架流程, 1,安装 scrapy 链接 查看即可. 2,新建scrapy项目 scrapy startproject 项目名 目录结构图 3,cd到项目名下,创建任务. scra ...

  6. 使用memcache或redis限制某个用户或者某ip用户一段时间内最大投票次数

    实现每个用户在某网站10分钟内最多投票5次 function isFrequently($key){ $t = 60*10; $n = 5; $mem = new Memcache(); $mem-& ...

  7. DESTOON从CSRF到GETSHELL

    本文作者:薄荷糖微微凉 Destoon B2B网站管理系统是一套完善的B2B(电子商务)行业门户解决方案.系统基于PHP+MySQL开发,采用B/S架构,模板与程序分离,源码开放.模型化的开发思路,可 ...

  8. java使用Redis5--分布式存储

    Redis实现分布式存储的方法主要是采用一致性哈稀分片(Shard),将不同的key分配到不同的redis server上,达到横向扩展的目的. package redis; import java. ...

  9. [ActionScript 3.0] File下载工具

    更新数据原理,访问接口,将服务器数据抓取并下载到本地的临时文件夹,当所有下载完成,卸载客户端内容,出现升级界面,此时移动下载的内容到目标文件夹,移动完成再重新加载客户端,访问接口,下载文件,移动文件均 ...

  10. J2SE基本安装和java的环境变量

    J2SE基本安装和java的环境变量   1. 首先登录http://www.oracle.com,下载JDK(J2SE) JDK有很多版本其中JDK 1.0,1.1,1.2,1.3,1.4 1.5 ...