Docker学习--Image镜像

171 阅读2分钟

一、介绍

  在Docker的术语里,一个制度层被称为镜像,一个镜像是永久不变的。所有的变更都发生在顶层的可写层,而下层的原始的只读镜像文件并未变化。由于镜像是不可写的,所以镜像是无状态的。

1、父镜像

  每一个镜像都可能依赖于由一个或多个下层组成的另一个镜像。

2、基础镜像

  一个没有任何父镜像的镜像,称为基础镜像。

3、镜像ID

  所有的镜像都是通过一个64位16进制的字符串来标识的。


二、获取镜像

  可以使用docker pull命令来获取仓库中的镜像


  也可以通过指定仓库拉取镜像

docker pull dl.dockerpool.com:5000/ubuntu:latest

  完成后,即可使用该镜像,例如创建一个容器,让其中运行bash应用

sudo docker rum -t -i ubuntu:latest /bin/bash


三、列出本地镜像

  可以使用docker images列出已有的镜像


 其中:

  REPOSITORY:来自于哪个仓库

  TAG:镜像的标记

  IMAGE ID:唯一ID号

  CREATED:创建时间

  SIZE:镜像大小

  Tag信息用来标记来自同一个仓库的不同镜像,如果不指定具体的标记,则默认使用latest标记信息。


四、创建镜像

1、可以使用拉取的镜像来启动容器

docker run -t -i training/sinatra /bin/bash

  操作完成后,使用exit退出,然后使用docker commit命令来提交更新后的副本。

docker commit -m "Added json gem" -a "Docker Newbee" 4aea2121496a test/sinatra:v2

  其中,-m指定提交的说明信息;-a指定更新的用户信息

2、利用Dockerfile来创建镜像

  新建一个Dockerfile,在文件中添加以下信息:

FROM ubuntu:latest
MAINTAINER Docker Test<test@docker.com>
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra

  保存并退出,然后执行以下代码生成镜像:

docker build -t="test/sinatra:v2" .

3、从本地文件系统导入

curl ubuntu-14.04-x86_64-minimal.tar.gz & docker import - ubuntu:14.04


五、上传镜像

  可以使用docker push命令,将镜像上传到仓库中来共享

docker push test/sinatra


六、导出和导入镜像

  可以使用docker save命令导出镜像

docker save -o ubuntu_14.04.tar ubuntu:14.04

  可以使用docker load命令导入镜像

docker load --input ubuntu_14.04.tar


七、删除镜像

  可以使用docker rmi命令来删除镜像

docker rmi test/sinatra

  删除镜像之前需要使用docker rm命令删除依赖于该镜像的所有容器