跳至主要內容

十六、Docker images 本地镜像列表

安图新大约 5 分钟云原生Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源

Docker 可以让开发者打包它们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化

Docker 使用完全使用沙箱机制,两个容器之间不会有任何接口 (这个有点像 iPhone 的 app ) ,更重要的是容器性能开销极低

学习前提

在继续阅读之前,我们希望你对 Linux 有一些基本的了解,包括

1、 会使用Linux常用的命令;
2、 知道大部分的Linux常识,比如终端serviceip用户等;
3、 熟练使用Ubuntu或者Centos或者MacOS种的一种昂;

如果你对这些知识还是一知半解,可以访问我们的 Linux 基础教程 先进行一些简单的了解

Docker的应用场景

1、 Web应用的自动化打包和发布;
2、 自动化测试和持续集成、发布;
3、 在服务型环境中部署和调整数据库或其他的后台应用;
4、 从头编译或者扩展现有的OpenShift或CloudFoundry平台来搭建自己的PaaS环境;

Docker 的优点

1、 简化程序;

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化
Docker 改变了虚拟化的方式,使开发者可以直接将自己的成果放入 Docker 中进行管理
方便快捷已经是 Docker 的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成

2、 解决运维配置噩梦;

在没有 Docker 之前,每一台机器,每一个要用到的依赖,几乎都要重新配置一遍
比如新增一台 MySQL 数据库,就要从头开始配置所有环境
有了 Docker 之后,只需要从仓库里把之前的 MySQL 镜像拉出来,直接使用

3、 节省开支;

使用 Docker ,可以在一台电脑上部署多个服务,多个应用,从而充分榨干每一滴性能
同时,又不用担心多个应用之间出现相互访问的情况

相关链接

Docker 官网: http://www.docker.comopen in new window

Github Docker 源码: https://github.com/docker/dockeropen in new window

前面几章节中,我们多次使用 docker run 从一个镜像创建一个容器,而且我们知道,当使用 docke run 一个镜像时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载

我们也在 Docker run 运行镜像 章节中形象的给镜像一个比喻:QQ 安装包

我们都知道,一个软件安装包,最初都是存放在远程开发者的电脑上,比如 QQ 安装包存放在腾讯服务器上,当我们使用下载软件下载下来之后,它就会在我们自己电脑上有一个备份

那么,镜像也是如此,所有的镜像一般都存储在远程的仓库里,比如 Docker Hubopen in new window,当我们使用 docker pull 命令时,就会把它们下载到本地

那么,我们要怎么查看本地有哪些镜像呢?

哈哈,很多朋友大概都已经猜到,就是使用 docker images 命令

docker images 列出本地镜像

如果要查看本地有哪些镜像,可以使用 docker images 命令

docker images

例如下面的命令列出了我的电脑上的所有镜像

[root@www.hotmindshare.com ~]# docker images
REPOSITORY       TAG     IMAGE ID      CREATED       SIZE
ubuntu           17.10   e4422b8da209  4 weeks ago   99.2MB
ubuntu           17.04   fe1cc5b91830  5 months ago  95.6MB
hello-world      latest  e38bc07ac18e  7 weeks ago   1.85kB
jcdemo/flaskapp  latest  084bae02af1b  4 months ago  98.9MB

可以看到,我电脑上只有三个镜像

下表时对 docker images 命令返回结果各个字段的说明

字段说明
REPOSTITORY表示镜像的仓库源
TAG镜像的标签
IMAGE ID镜像ID
CREATED镜像创建时间
SIZE镜像大小

同一仓库源可以有多个 TAG ,代表这个仓库源的不同个版本

ubuntu 仓库源里,有 17.1017.04 等多个不同的版本

Docker 使用 REPOSTITORY:TAG 来定义不同的镜像

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

[root@www.hotmindshare.com ~]# docker run -t -i ubuntu:17.10 /bin/bash
root@87c897f22904:/#

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

[root@www.hotmindshare.com ~]# docker run -t -i ubuntu:17.04 /bin/bash
root@7e0805087ef8

如果不指定一个镜像的版本标签,例如只使用 ubuntu ,docker 将默认使用 latest 标签

[root@www.hotmindshare.com ~]# docker run -t -i ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
a48c500ed24e: Pull complete 
1e1de00ff7e1: Pull complete 
0330ca45a200: Pull complete 
471db38bcfbf: Pull complete 
0b4aba487617: Pull complete 
Digest: sha256:667c4b3820ddfbfe7b2dc9816123c936f45af6f31bd51b01d02e97dc5f09e3d5
Status: Downloaded newer image for ubuntu:latest
root@d4dc8634df69:/# 

上次编辑于:
贡献者: Andy