zoukankan      html  css  js  c++  java
  • Docker系列之Docker镜像(读书笔记)

    一、基本概念

      Docker包括三个基本概念镜像、容器、仓库。

      Docker镜像:就是一个只读的模板。例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或其他应用程序。用户可以直接从其他人那你下载一个已经做好的镜像直接使用。

      Docker容器:Docker利用容器来运行应用。容器是从镜像创建的运行例。

      Docker仓库:仓库是存放镜像文件的场所。仓库分为公开仓库和私有仓库。最大的公开仓库是Docker Hub,存放这数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool。

    二、Docker安装

      2.1 Ubuntu系统安装Docker

      Ubuntu14.04系统中自带Docker包,可以直接安装(可能不是最新的)。

    sudo apt-get update
    sudo apt-get install -y docker.io

      Ubuntu14.04以下的可以通过Docker源安装最新的Docker版本。

    $ sudo apt-get install apt-transport-https
    $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
    $ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
    $ sudo apt-get update
    $ sudo apt-get install lxc-docker

     启动Docker服务:sudo service docker start

      2.2 Centos系列安装Docker

      CentOS6

        安装Docker,命令如下:

    sudo yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
    sudo yum install docker-io

       CentOS7

        CentOS7系统CentOS-Extras库中已带Docker,可以直接安装:

    sudo yum install docker

    三、Docker镜像

      Docker运行容器需要本地存在对应的镜像,如果镜像不存在本地,Docker会从镜像仓库下载(默认是Docker Hub公共注册服务器中的仓库)。

      3.1 获取镜像

      通过 docker pull 命令从仓库获取所需要的镜像。如:sudo docker pull ubuntu:12.04,该命令相当于 sudo docker pull registry.hub.docker.com/ubuntu:12.04命令

    使用docker images显示本地已有的镜像。

    在列出来的信息中,可以看到几个字段信息:

    • 来源于哪个仓库,如ubuntu
    • 镜像标记,如12.04
    • 它的ID号(唯一)
    • 创建时间
    • 镜像大小

      3.2 创建本地镜像

      使用docker build 创建一个新的镜像。首先需要创建一个Dockerfile,包含以下如何创建镜像的指令。

    • 使用 # 来注释
    • FROM指令告诉Docker使用哪个镜像作为基础
    • 接着是维护者的信息
    • RUN开头的指令会在创建中运行,比如安装一个软件包,在这里使用apt-get 来安装一些软件

    编写完成Dockerfile后,可以使用 docker build 来生成镜像。使用下面命令:

    sudo docker build -t="myimage" /Microheart/

     其中 -t 标记来添加tag(全部为小写)。/Microheart/表示Dockerfile文件所在的文件夹。如果Dockerfile中指定的Docker的基础镜像本地没有,则会下载。其中过程为:首先上传Dockerfile内容,然后Dockerfile中的指令被一条条执行。每一步都创建一个新容器,在容器中执行指令并提交修改。所有指令全部执行完后,返回最终的镜像Id。所有的中间步骤所产生的容器都被删除和清理。注意一个镜像不能超过127层。

      3.3 上传镜像到Docker Hub

      首先注册Docker用户,然后本地用 docker login 登录,登录后使用 docker push 上传镜像。需要注意的是Docker Hub对镜像名称有要求,需要命名为:用户的的注册名/镜像名。如果本地的镜像名不符合,通过 docker tag 修改。

       3.4 存出和载入镜像

      存出镜像就相当于将镜像打包,然后复制到别的机器上解压(载入镜像)使用。使用 docker save 命令存出。使用 docker load 命令载入。例如:

    root@VM-0-15-ubuntu:/Microheart# docker save -o ubuntu_12.04.tar(文件名) ubuntu(镜像名) //将ubuntu镜像载出 
    root@VM-0-15-ubuntu:/Microheart# docker load -i ./ubuntu_12.04.tar    //载入
    Loaded image: ubuntu:12.04

       3.5 移除镜像

      使用 docker rmi 加上镜像名,移除镜像。

     

  • 相关阅读:
    Java实现字符串的包含
    Java实现字符串的包含
    Java实现字符串的包含
    Java实现字符串的包含
    Java实现字符串的包含
    穷文富理撑死工,得先学门能挣钱的手艺
    Windows更新清理工具 (winsxs 清理工具)
    SQLite实现内存键值存储
    Qt5.7.0移植到4412
    罗辑思维2014 第11集 迷茫时代的明白人(慢慢来,能做一点是一点),有书卖
  • 原文地址:https://www.cnblogs.com/MicroHeart/p/9413773.html
Copyright © 2011-2022 走看看