Docker学习之Image(镜像)

栏目: 编程工具 · 发布时间: 6年前

内容简介:我们知道Image(镜像)是Docker的三大组件之一,Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会DockerHub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。从 Docker 镜像仓库获取镜像的命令是

我们知道Image(镜像)是 Docker 的三大组件之一,Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会

获取镜像

DockerHub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。

从 Docker 镜像仓库获取镜像的命令是 docker pull 。其命令格式为:

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。

  • Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号] 。默认地址是 Docker Hub。
  • 仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名> 。对于 Docker Hub,如果不给出用户名,则默认为 library ,也就是官方镜像。

先看一个例子,这里拉取ubuntu的一个镜像:

root@huangche-PC:/# docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
6abc03819f3e: Pull complete 
05731e63f211: Pull complete 
0bd67c50d6be: Pull complete 
Digest: sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b53000a5
Status: Downloaded newer image for ubuntu:18.04

Docker学习之Image(镜像)

上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。而 镜像名称是 ubuntu:18.04 ,因此将会获取官方镜像 library/ubuntu仓库中标签为 18.04 的镜像。其中library表示组。

从下载过程中可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的 ID 的前 12 位。如:6abc03819f3e: Pull complete ,并且下载结束后,给出该镜像完整的 sha256 的摘要,以确保下载一致性。

运行

通过docker pull 命令获取到镜像以后,就可以以这个镜像为基础启动并运行一个容器。以上面的ubuntu:18.04 为例,如果我们打算启动里面的 bash 并且进行交互式操作的话,可以执行下面的命令。

docker run -it --rm \
ubuntu:18.04 \
bash

图片描述

从上图就可以看出,我们进入了一个以ubuntu:18.04镜像为基础的容器环境了(其实也就是进入了一个ubuntu系统),也可以进行 shell 操作了,可以通过ls -al查看下:

图片描述

通过 cat /etc/os-release来查看下该系统的一些基本信息:

图片描述

再看下

docker run -it --rm \
ubuntu:18.04 \
bash

这个命令的意思表示啥

  • it :这是两个参数,一个是 -i :交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
  • rm :这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm 。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。ubuntu:18.04 :这是指用 ubuntu:18.04 镜像为基础来启动容器。
  • bash :放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash 。

最后我们通过 exit 退出了这个容器。

列出镜像

在使用Docker的过程中,难免需要查看下本地已经存在的可使用的镜像的一些信息,这时候可以使用 docker image ls 命令来进行查看:

图片描述

列表包含了 仓库名 、 标签 、 镜像 ID 、 创建时间 以及 所占用的空间 。

其中仓库名、标签在之前有提到过。镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个 标签。因此,在上面的例子中,我们可以看到ubuntu:18.04 和 ubuntu:latest 拥有相同的 ID,因为它们对应的是同一个镜像。

删除本地镜像

对于用不到的镜像,可以通过 docker image rm 命令进行删除操作,格式为:

docker image rm [选项] <镜像1> [<镜像2> ...]

其中, <镜像> 可以是 镜像短 ID 、 镜像长 ID 、 镜像名 或者 镜像摘要 。

图片描述

看到图中列出了三个镜像,接下来对ngnix这个镜像进行删除操作:

Docker学习之Image(镜像)

我们可以用镜像的完整 ID,也称为 长 ID ,来删除镜像。使用脚本的时候可能会用长 ID,但是人工输入就太累了,所以更多的时候是用 短 ID 来删除镜像。 docker image ls 默认列出的就已经是短 ID 了,一般取前3个字符以上,只要足够区分于别的镜像就可以了。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning iPhone and iPad Web Apps

Beginning iPhone and iPad Web Apps

Chris Apers、Daniel Paterson / Apress / 2010-12-15 / USD 39.99

It seems that everyone and her sister has developed an iPhone App—everyone except you, the hard-working web professional. And now with the introduction of the iPad, you may even feel farther behind. B......一起来看看 《Beginning iPhone and iPad Web Apps》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具