基本概念
首先我们熟悉一下Docker的三大护法:镜像、容器和仓库
镜像是运行容器的前提。
容器是镜像的一个运行实例。
容器和镜像最大的区别为:镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态。
仓库是就是集中存放镜像的地方。
个人理解是:
仓库是“应用市场或者是存放下载安装包的地方”
镜像是“应用市场里的QQ安装包”
容器则是“安装后的的QQ所运行的载体”
在运行一个容器前需要本地有对应的镜像,如果镜像不存在,Docker会尝试从默认镜像仓库下载(默认使用Docker Hub公共注册服务器中的仓库),当然用户也可以通过配置,使用自定义的镜像仓库。
使用pull命令下载镜像到本地;
语法:
docker pull [OPTIONS] NAME[:TAG]
OPTIONS说明:
-a :拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启
NAME是镜像仓库名称(用来区分镜像), TAG是镜像的标签(往往用来表示版本信息)。通常情况下,描述一个镜像需要包括“名称+标签”信息。
实例
从Docker Hub下载java。
(对于Docker镜像来说,如果不显式指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像。)
docker pull java
严格地讲,镜像的仓库名称中还应该添加仓库地址(即registry,注册服务器)作为前缀,只是默认使用的是官方Docker Hub服务,所以该前缀可以忽略。
例如,docker pull ubuntu:18.04命令相当于docker pull registry.hub.docker.com/ubuntu:18.04
如果从非官方的仓库下载,则要在仓库名称前指定完整的仓库地址。例如从网易蜂巢的镜像源来下载ubuntu:18.04镜像,可以使用如下命令,此时下载的镜像名称为
hub.c.163.com/public/ubuntu:18.04:
拉取语句为
$ docker pull hub.c.163.com/public/ubuntu:18.04