跳至主要內容

十七、Docker 查找镜像

安图新大约 4 分钟云原生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

在上一章节的末尾,因为本地不存在 latest 标签的 ubuntu,所以 Docker 就跑到远程去拉取 ubuntu:latest 镜像了

docker pull 拉取镜像

当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像

如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它

例如下面的命令,从远程预先拉取 ubuntu:16.10 到本地

[root@www.hotmindshare.com ~]# docker pull ubuntu:16.10
1610: Pulling from library/ubuntu
dca7be20e546: Pull complete 
40bca54f5968: Pull complete 
61464f23390e: Pull complete 
d99f0bcd5dc8: Pull complete 
120db6f90955: Pull complete 
Digest: sha256:8dc9652808dc091400d7d5983949043a9f9c7132b15c14814275d25f94bca18a
Status: Downloaded newer image for ubuntu:16.10

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

[root@www.hotmindshare.com ~]# docker run -it ubuntu:16.10 /bin/bash

查找镜像

如果本地没有想要的镜像,那么我们可以从远程仓库上查找

从远程仓库上查找镜像有两种方法

1、 是通过访问DockerHub网站来搜索镜像;

Docker Hub 网址为 [https://hub.docker.com/][https_hub.docker.com]

2、 是通过dockersearch命令来查找镜像;

两种方法都好用,一般情况下对于精确的镜像,我们都使用 docker search 命令,比如 nginxphppython 等,除此之外,我们使用 Docker Hub 网站来查找

下面,我们就使用 docker search 命令来查找 nginx 的镜像

[root@www.hotmindshare.com ~]# docker search nginx

返回结果如下

 

总共返回 5 列信息,各列说明如下

说明
NAME镜像仓库源的名称
DESCRIPTION镜像的描述
stars标星个数
OFFICIAL是否 Docker 官方发布
AUTOMATED是否从 Dockerfile 自动构建

拖取镜像

如果找到了想要的镜像,那么可以使用 docker pull 命令来拉取这个镜像了

比如我们想使用 nginx 官方最新的镜像,那么可以使用下面的命令将它下载到本地

[root@www.hotmindshare.com ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
f2aa67a397c4: Pull complete 
3c091c23e29d: Pull complete 
4a99993b8636: Pull complete 
Digest: sha256:f5d0f96d380d09afffb4f47b1eb66ade53103a281053cda06b7ca573b4eba0f0
Status: Downloaded newer image for nginx:latest

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

[root@www.hotmindshare.com ~]# docker run nginx

上次编辑于:
贡献者: Andy