Docker学习笔记(二):镜像

1. 简介

Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器。

Docker 公司创建、验证、支持、提供了一些基础镜像,这样的镜像往往使用单个单词作为名字。用户自己创建的一般前面会带 "username/"前缀

镜像信息:

  • Image ID:唯一标识一个镜像
  • REPOSITORY:来自于哪个仓库
  • TAG:标记来自同一个仓库的不同镜像(如果不指定具体的标记,则默认使用 latest 标记信息)
  • CREATED:创建时间
  • SIZE:大小

常用命令

  • docker images:列出本地的所有images
  • docker search imageName:查找指定name的image
  • docker pull imageName:下载指定name的image
  • docker push imageName:推送到 Docker Hub
  • docker rmi imageName:移除本地的镜像
  • docker rmi $(docker images -q -f "dangling=true"):清理所有未打过标签的本地镜像

2. 创建image

创建镜像有很多方法:

  • 用户可以从 Docker Hub 获取已有镜像,并在修改后commit
  • 可以利用本地文件系统创建一个

2.1 修改已有image来创建

启动容器后,可在容器中做一些操作。之后可用 docker commit 提交变更:
docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2
其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a
可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。

2.2 Dockerfile来创建

使用 docker build 来创建一个新的镜像。首先需要创建一个 Dockerfile,Dockerfile 中每一条指令都创建镜像的一层。

Dockerfile 基本的语法是

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

编写完成 Dockerfile 后可以使用 docker build -t="ouruser/sinatra:v2 来生成镜像。其中 -t 标记来添加 tag。

Dockfile 中的指令被一条一条的执行。每一步都创建了一个新的容器,在容器中执行指令并提交修改(就跟之前介绍过的 docker commit
一样)。当所有的指令都执行完毕之后,返回了最终的镜像 id。所有的中间步骤所产生的容器都被删除和清理了。

Automated Builds(自动创建)

你可能感兴趣的:(Docker学习笔记(二):镜像)