与人分享,
就是让自己快乐。

Docker入门基础之镜像使用

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

下面我们来学习:

  • 1、管理和使用本地 Docker 主机镜像
  • 2、创建镜像

列出镜像列表

我们可以使用 docker images 来列出存在于宿主机上的镜像。

各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有16.04、15.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。


以相应的镜像启动容器

我们如果要使用版本为16.04的ubuntu系统镜像来运行容器时,命令如下:

如果要使用版本为15.04的ubuntu系统镜像,则命令如下:

各个参数解析:

  • docker: Docker 的二进制执行文件。
  • run:与前面的 docker 组合来运行一个容器。
  • -it:其实是两个参数组成, -i 和 -t,-i:允许你对容器内的标准输入 (STDIN) 进行交互。-t:在新容器内指定一个伪终端或终端。
  • ubuntu:15.04指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • sh:执行命令。

获取一个新镜像

当我们在宿主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。

下载完成后,我们可以直接使用这个镜像来运行容器。


查找镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。

NAME:镜像仓库源的名称

DESCRIPTION:镜像的描述

OFFICIAL:是否docker官方发布


拉取httpd镜像

我们决定使用上图中的httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。

下载完成后,我们就可以使用这个镜像了。


创建镜像

当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

  • 1.从已经创建的容器中更新镜像,并且提交这个镜像
  • 2.使用 Dockerfile 指令来创建一个新的镜像

更新镜像

更新镜像之前,我们需要使用镜像来创建一个容器。

在运行的容器内使用 apt-get update 命令进行更新。

在完成操作之后,输入 exit命令来退出这个容器。

通过 docker ps -a 查看所有容器:

此时ID为12847d9f5071的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。

各个参数说明:

  • -m:提交的描述信息。
  • -a:指定镜像作者。
  • 12847d9f5071:容器ID。
  • yeqing112/ubuntu:v2:指定要创建的目标镜像名。

我们可以使用 docker images 命令来查看我们的新镜像 yeqing112/ubuntu:v2

从上面的信息中可以看到我们更新过的镜像,文件体积明显比之前大了一些。

构建镜像

除了上面更新镜像的方法,我们还可以使用命令 docker build , 从零开始来构建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

第一条FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令,安装了什么

这里我们还是一样,执行一个 apt-get update 更新命令

然后,我们使用 Dockerfile 文件,通过 docker build -t yeqing112/ubuntu:v3 . 命令来构建一个新镜像。

参数说明:

  • -t :指定要创建的目标镜像名
  • . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

构建成功后,使用 docker images 查看镜像:

由上面的信息看出,新的镜像v3与v2文件体积是一样的,两个镜像都只是执行了 apt-get update


设置镜像标签

我们可以使用 docker tag 命令,为镜像添加一个新的标签。

docker tag 镜像ID,这里是 9c55ea9b9ee8,用户名称、镜像源名(repository name)和新的标签名(tag)。

使用 docker images 命令可以看到,ID为9c55ea9b9ee8的镜像多了一个v3-1的标签。

赞(1) 打赏
未经允许不得转载:173TOP » Docker入门基础之镜像使用

与人分享,就是让自己快乐。

联系我们联系我们