docker从零开始入门(三)Docker镜像

112 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

镜像是Docker的三大组件之一。 Docker运行容器前需要本地存在对应的镜像,如果本地不存,Docker会从镜像仓库下载。

Docker 获取镜像 之前提到过,Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。

查找镜像 我们可以从 Docker Hub 网站来搜索镜像,

Docker Hub 网址为: hub.docker.com/

我们也可以使用docker search 命令来搜索镜像。比如我们需要一个tomcat的镜像来作为我们的web服务。

我们可以通 过docker search 命令搜索tomcat来寻找适合我们的镜像。

[root ~]# docker search --help
Usage: docker search [OPTIONS] TERM
Search the Docker Hub for images
Options:
-f, --filter filter Filter output based on conditions provided
根据提供的条件过滤器输出
--format string Pretty-print search using a Go template
⽤Go模板打印出漂亮的搜索结果
--limit int Max number of search results (default 25)
搜索结果的最⼤数量(默认值为25--no-trunc Don't truncate output
不要截断输出
docker search tomcat

获取镜像

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

docker pull [选项] [Docker Registey 地址[:端口号]/] 仓库名[:标签]
具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。
- Docker 镜像仓库地址: 地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub。
- 仓库名:这里的仓库名是两段式名称, 即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,
也就是官方镜像。

我们需要一个tomcat的镜像来作为我们的web服务。通过 docker pull获取镜像

docker pull tomcat:版本号 //不写 :版本号 代表laster版本

image.png 如上图所示。从下载过程中可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文 件。下载过程中给出了每一层的 ID 的前 12 位。并且下载结束后,给出该镜像完整的 sha256 的摘要,以确保下载一致性。 在使用上面命令的时候,你可能会发现,你所看到的层 ID 以及 sha256 的摘要和这里的不一样。这是因为官方镜像是一直在维护 的,有任何新的 bug,或者版本更新,都会进行修复再以原来的标签发布,这样可以确保任何使用这个标签的用户可以获得更安全、更 稳定的镜像。

Docker 列出镜像

要想列出已经下载下来的镜像,可以使用docker image ls 命令。

 docker images // docker image ls

image.png

列表包含了 仓库名标签镜像 ID创建时间 以及 所占用的空间。镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个标签。因此,如果拥有相同的 ID,因为它们对应的是同 一个镜像。

Docker 删除本地镜像

语法:

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

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

如果要删除本地的镜像,可以使用

 docker image rmi / rm 
 命令 
 docker image rmi 镜像ID //常用

要删除镜像必须确认此镜像⽬前没有被任何容器使⽤

Docker保存镜像

备份本地仓库的镜像

1 ⽤ save ⼦命令将本地仓库的镜像保存当前⽬录下

docker save -o tomcat.guo.tar 镜像名称 

2 将本地目录下的镜像备份文件导⼊到本地 Docker 仓库

 # ⽅式⼀(不输出详细信息): 
 [root@localhost ~]# docker load -i tomcat.guo.tar 
 # ⽅式⼆(输出详细信息): 
 [root@localhost ~]# docker load < tomcat.guo.tar