1、Docker 安装

Ubuntu  16安装Docker

$ sudo apt-get update

$ sudo apt-get install –y docker.io

$ sudo systemctl start docker

$ sudo systemctl enable docker

CentOS 7安装Docker

# yum install –y docker-io

# systemctl start docker.service

# systemctl enable docker.service

2、Docker 镜像管理

  Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试从默认镜像仓库下载(默认使用Docker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自己的定义的镜像仓库。

  2.1 获取镜像

  命令格式为:docker pull NAME[:TAG]

  如果不显式地指定TAG,默认会选择latest标签,即下载仓库中最新版本的镜像。

  # docker pull centos:6           #或者docker pull registry.hub.docker.com/centos:6 从指定的注册服务器下载镜像

  下载过程中可以看出,镜像文件一般由若干层组成,行首7b52546cd236这样的字串代表了各层的ID,下载过程中会获取并输出镜像的各层信息。层(Layer)其实是AUFS(Advanced Union File System,一种联合文件系统)中的重要概念,是实现增量保存与更新的基础。

  镜像下载完,就可以利用刚才下载的镜像创建容器了。

  # docker run –t –i  centos:6  /bin/bash

  2.2 查看镜像

  # docker images                #查看本机上下载的镜像

  其中:

      REPOSITORY    ---表示来自于哪个仓库

      TAG                   ---表示镜像的标签信息

      IMAGE ID          ---表示镜像ID

  # docker tag d1.dockerpool.com:5000/centos:latest  centos:7 

  为镜像添加一个新的标签:centos:7,但它跟以前的镜像ID是一样的。

  # docker inspect 5506de2b643b    #查看镜像的详细信息

  命令返回的是一个JSON格式的信息,如果我们只要其中的一项内容,可以使用-f参数来指定,例如:

  # docker inspect –f {{“.Architecture”}} 550

  2.3 搜寻镜像

  # docker search mysql

  参数:

      --automated=false    仅显示自动创建的镜像

      --no-trunc=false        输出信息不截断显示

      -s,—stars=0                指定仅显示评价为指定星级以上的镜像

  2.4 删除镜像

  删除镜像前,必须确定没有基于该镜像创建的容器,如果有,必须先删除容器,才能删除对应的镜像。

 # docker rmi  2318d26665ef       #2318d26665ef   为镜像ID

  2.5 创建镜像

  创建镜像的方法有3种:基于已有镜像的容器创建、基于本地模版导入、基于Dockerfile创建。

  2.5.1 基于已有镜像的容器创建-镜像

  该方法主要是使用docker commit 命令,其命令格式为:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] , 主要选项包括:

   -a , --author=””         作者信息

   -m ,—message=””  提交信息

   -p, --pause=true            提交时,暂停容器的运行

   以下操作将创建1个容器,并创建文件test.

   [root@docker-1 ~]# docker run -ti centos:6 /bin/bash
   [root@d79b9ab0a34a /]# touch test
   [root@d79b9ab0a34a /]# exit

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

   [root@docker-1 ~]# docker commit d79b9ab0a34a test        #将创建容器另存成了镜像  

   [root@docker-1 ~]# docker images
   REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
   test                latest              b9068a1f5c3e        50 seconds ago      194.7 MB
   docker.io/centos    6                   c1bc39e37fd0        2 weeks ago         194.7 MB
   docker.io/centos    7                   8140d0c64310        2 weeks ago         192.5 MB

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

   2.6  保存和载入镜像

   可以使用docker save 和 docker load 命令来保存和载入镜像。

   # docker save –o centos-6.tar centos:6

   # docker load --input  centos-6.tar

   # docker load < centos-6.tar