docker 镜像

2018-07-19  本文已影响0人  pengyuyancode

docker镜像是一个只读模板,它包含创建Docker容器的说明。我们可以理解为镜像是Java中的类,容器是Java类的实例化,启动镜像相当于new 一个docker容器。

Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker 会从镜像仓库下载(默认是 Docker Hub 公共注册服务器中的仓库-----如果从 Docker Hub 下载镜像非常缓慢,可以参照后面的章节配置镜像加速器)。

查看本机已安装镜像列表

docker images

图1

各个选项说明:

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

查找镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/

我们也可以使用 docker search 命令来搜索镜像。

docker search mysql

图2

下载需要的镜像

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

docker pull [选项] [Docker Registry地址]<仓库名>:<标签>

Docker Registry地址:地址的格式一般是 <域名/IP>[:端口号] 。默认地址是Docker Hub。

仓库名:如之前所说,这里的仓库名是两段式名称,既 <用户名>/<软件名> 。对于 Docker Hub,如果不给出用户名,则默认为 library ,也就是官方镜像。

比如:

$ docker pull ubuntu:14.04

...............

Status: Downloaded newer image for ubuntu:14.04

上面的命令中没有给出 Docker Registry 地址,因此将会从 Docker Hub 获取镜像。而镜像名称是 ubuntu:14.04 ,因此将会获取官方镜像 library/ubuntu仓库中标签为 14.04 的镜像。

如下所示我们没有写标签,则默认下载最新版本的:

docker pull docker.io/centos

通过 docker images 查看已经下的镜像

图3

启动镜像实例

docker run -it  docker.io/centos /bin/bash

-it :这是两个参数,一个是 -i :交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终获取镜像端。

/bin/bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash 。

图四

当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

检查本地是否存在指定的镜像,不存在就从公有仓库下载

利用镜像创建并启动一个容器

分配一个文件系统,并在只读的镜像层外面挂载一层可读写层

从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去

从地址池配置一个 ip 地址给容器

执行用户指定的应用程序

执行完毕后容器被终止

退出镜像实例

    exit 退出容器时,容器会关闭。如果想要容器后台运行则:Ctrl +q+p 。

exit

启动、停止、重启容器的命令:

 docker start 1d5...

 docker stop 1d5...

docker restart 1d5...

上一篇 下一篇

猜你喜欢

热点阅读