Docker 镜像命令
当运行 docker 容器时,如果使用的镜像不在本地,那么就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
1. 查看本地镜像
docker 查看镜像的命令为:docker images,可以列出本地主机上的镜像。
root@codebaoku:~$ docker images 运行结果: REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.7 f2e8d6c772c0 3 weeks ago 324.6 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
各个选项说明:
- REPOSITORY:表示镜像的仓库源名称
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
所以,我们如果要使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下:
root@codebaoku:~$ docker run -it ubuntu:15.10 /bin/bash root@d77ccb2e5cca:/#
参数说明:
- -i: 以交互模式运行容器,可以通过容器内的标准输入/输出进行交互。
- -t: 为容器重新分配一个伪输入终端。
- ubuntu:15.10: 使用 ubuntu 15.10 版本镜像启动容器。
- /bin/bash:在容器中运行的命令,这里我们要运行交互式 Shell,因此使用 /bin/bash 命令。
如果你不指定一个镜像的版本标签,那么 docker 将使用最新版本,tag 自动设置为latst。
例如:你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。
2. 拉取镜像
当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载。
root@codebaoku:~$ docker pull ubuntu:13.10 13.10: Pulling from library/ubuntu 6599cadaf950: Pull complete 23eda618d451: Pull complete f0be3084efe9: Pull complete 52de432f084b: Pull complete a3ed95caeb02: Pull complete Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3 Status: Downloaded newer image for ubuntu:13.10
下载完成后,我们可以直接使用这个镜像来运行容器。
3. 查找镜像
我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。
root@codebaoku:~$ docker search httpd 运行结果: NAME DESCRIPTION STARS OFFICIAL AUTOMATED httpd The Apache HTTP... 3468 [OK] centos/httpd-24-centos7 Platform for... 39 [OK]
其中参数如下:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
4. 删除镜像
docker 删除镜像的命令为:docker rmi,比如我们删除 hello-world 镜像:
$ docker rmi hello-world 运行结果: 0e5d3e9efe14
5. 设置镜像标签
docker 设置镜像标签的命令为:docker tag。使用该命令会添加一个新的镜像版本。
root@codebaoku:~$ docker tag 860c279d2fec centos:test
docker tag 镜像ID为 860c279d2fec,新的标签名为 centos:test。
使用 docker images 命令可以看到,ID为 860c279d2fec 的镜像多一个标签。
root@codebaoku:~$ docker images 运行结果: REPOSITORY TAG IMAGE ID CREATED SIZE centos 6.7 860c279d2fec 5 hours ago 190.6 MB centos test 860c279d2fec 5 hours ago 190.6 MB nginx latest 6f8d099c3adc 13 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
Docker 仓库(Repository)是集中存放镜像的地方。目前 Docker 官方维护了一个公共仓库 Docker Hub。本章内容包括:Docker Hub 账号注册、Docker Hub 登录和退出、Docker Hub 搜索镜像、Docker Hub 拉取镜像、Docker Hub 推送镜像。