本文首发于微信公众号:Hunter后端
原文链接:Docker笔记一之镜像
从这一篇开始将介绍一些 Docker 的使用笔记,都是自己在使用过程中用到的一些笔记的积累。
首先我们来简单理解一下 Docker 的作用,我们可以将其理解成一个个的小型的 Linux 系统。
以我们的 Django 系统为例,需要运行 Django、MySQL、Redis、Nginx 等,我们可以把它们都放到各自的 Docker 容器中,然后通过 yaml 文件分别启动起来。
这样操作有一个好处,就是便于移植,也就是说在我的电脑上可以运行的系统,打包好后,放到别人的电脑上,只要也装有 Docker,也可以同样的运行,这样就不用额外的去安装和配置复杂的依赖关系。
这一篇笔记将介绍 Docker 的镜像
以下是本篇笔记目录:
- 镜像的拉取
- 镜像的基本命令
1、镜像的拉取
在前面我们介绍了,Docker 是一个小型的 Linux 系统,它包含了一个 Linux 系统运行所需的最基础的软件和相关依赖。
而我们的镜像从哪里来呢,从 Docker 仓库。
拉取命令
我们如何拉取呢,假设我们想要拉取一个 Ubuntu 镜像,命令则会是:
docker pull ubuntu
很简单对不对,然后 Docker 就会将 Docker 仓库里最近的一个 Ubuntu 版本拉取到本地。
如果我们想指定版本呢,我们想拉取 Ubuntu 18.04,或者 16.04 怎么办,加一个 : 和一个版本号即可:
docker pull ubuntu:18.04
docker pull ubuntu:16.04
如果我们想拉取一个 Python 的镜像呢,同样的操作:
docker pull python:3.6
系统就会拉取一个 Linux 系统,这个系统里除了最简约版的 Linux,还会自带一个 Python 3.6 版本。
对于我们拉取下来的镜像如何查看呢,以下是命令:
docker images
然后就可以看到输出有五栏数据,REPOSITORY、TAG、IMAGE ID、CREATED、SIZE
- REPOSITORY 是镜像的名称,比如前面拉取的 ubuntu,python
- TAG 是镜像的标签,比如没有指定版本的 latest,或者指定版本的 18.04,3.6
- IMAGE ID 是每一个镜像的唯一 id,在后面使用镜像的时候,可以通过 image id 来定位
- CREATED 表示创建时间
- SIZE 表示镜像大小
对于镜像的大小,如果我们删除了某个镜像,会发现系统并没有减少这么多的存储空间,这是因为每一个镜像都是由很多层
构成的,这个层是可以在多个镜像之间复用的。
当我们删除某个镜像,仅仅是删除了该镜像没有被复用的层,被复用的层仍然会存在于系统中被其他镜像所使用
2、镜像的基本命令
接下来我们介绍一下关于镜像的基本命令
拉取指定镜像
通过冒号 : 来指定:
docker pull ubuntu:18.04
查看镜像
docker images
docker image ls
上面这两条命令是一样的效果
查看镜像相关信息
docker inspect ubuntu:latest
查看镜像的摘要信息
docker image ls --digests ubuntu
通过 IMAGE ID 删除镜像
docker rmi ed21b7a8aee9
docker image rm ed21b7a8aee9
其中 ed21b7a8aee9 为指定需要删除的镜像 id
上面两条命令是一样的效果
在后面如果多次使用镜像,然后系统就会存在镜像的名称和 Tag 都会为 none 的废弃镜像,如果我们想统一删除这些镜像,可以通过如下命令:
docker rmi `docker images -a|grep none | awk '{print $3}'`
在引用符号里的命令解释一下
docker images -a 获取所有镜像
grep none 过滤获取关键字有 none 的数据
awk '{print $3}' 获取输出的第三列数据,在这里就是 image 的镜像 id
docker rmi 就是删除镜像命令,将后面的操作获取的镜像 ID 删除
如果想获取更多后端相关文章,可扫码关注阅读:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。