zoukankan      html  css  js  c++  java
  • Docker学习(五): 仓库与数据管理

    特别声明:

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

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

    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》

  • 相关阅读:
    struts1下载地址
    基础知识浮点数
    基础知识this[String]
    矩阵基础知识(二)
    矩阵基础知识(三)
    設計公司軟件開發需求分析流程
    動態調用js文件
    图片的淡入淡出的实现方法
    IIS7.5(经典/集成),IIS6,asp.net 4.0下配置Url映射(asp.net mvc)
    页面状态加载....
  • 原文地址:https://www.cnblogs.com/konrad/p/8631505.html
Copyright © 2011-2022 走看看