一、介绍
在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命令删除依赖于该镜像的所有容器