docker [image] pull NAME [ :TAG]
其中, NAME 是镜像仓库名称(用来区分镜像), TAG 是镜像的标签(往往用来表示版本信息) 。 通常情况下, 描述 一 个镜像需要包括名称+标签信息。
获取一个 Ubuntu 18.04 系统的基础镜像可以使用如下的命令:
$ docker pull ubuntu: 18. 04
对于Docker镜像
来说, 如果不显式指定TAG, 则默认会选择la迳釭标签,这会下载
仓库中最新版本的镜像。
下载镜像到本地后, 即可随时使用该镜像了, 例如利用该镜像创建一个容器,在其中运
行bash应用, 执行打印 "Hello World"命令:
root@hk:~# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
d51af753c3d3: Pull complete
fc878cd0a91c: Pull complete
6154df8ff988: Pull complete
fee5db0ff82f: Pull complete
Digest: sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Status: Downloaded newer image for ubuntu:latest
root@hk:~# docker run -it ubuntu bash
root@4d1611828829:/# echo "Hello World"
Hello World
root@4d1611828829:/# exit
exit
root@hk:~#
查看镜像信息
使用docker images或docker image ls 命令可以列出本地主机上已有镜像的基本信息。
root@hk:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1d622ef86b13 3 weeks ago 73.9MB
在列出信息中, 可以看到几个字段信息:
D 来自于哪个仓库, 比如 ubuntu 表示 ubuntu 系列的基础镜像;
D 镜像的标答信息, 比如 18.04 、 latest 表示不同的版本信息。 标签只是标记, 并不能标
识镜像内容;
D镜像的ID (唯一标识镜像), 如果两个镜像的ID 相同, 说明它们实际上指向了同一
个镜像, 只是具有不同标签名称而已;
D创建时间, 说明镜像最后的更新时间;
D镜像大小, 优秀的镜像往往体积都较小。
为了方便在后续工作中使用特定镜像,还可以使用docker tag命令来为本地镜像任意添加新的标签。
root@hk:~# docker tag ubuntu:latest myubuntu:latest
root@hk:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu latest 1d622ef86b13 3 weeks ago 73.9MB
ubuntu latest 1d622ef86b13 3 weeks ago 73.9MB
使用docker巨mage]inspect命令可以获取该镜像的详细信息,包括制作者 、 适应
架构、各层的数字摘要等
root@hk:~# docker inspect myubuntu:latest
[
{
"Id": "sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01",
"RepoTags": [
"myubuntu:latest",
"ubuntu:latest"
],
"RepoDigests": [
"ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7"
],
"Parent": "",
"Comment": "",
"Created": "2020-04-24T01:07:51.928109369Z",
"Container": "8f0a86e65abdb09f6eeffc565fe6cf5ddf1213b5b14ce1ec92caa0347ee56901",
"ContainerConfig": {
"Hostname": "8f0a86e65abd",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"/bin/bash\"]"
],
"ArgsEscaped": true,
"Image": "sha256:8a6a781e255205d6bf9b529aea2aad5ad73780863dc4efaa62501dd806b5ed57",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {}
},
"DockerVersion": "18.09.7",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/bash"
],
"ArgsEscaped": true,
"Image": "sha256:8a6a781e255205d6bf9b529aea2aad5ad73780863dc4efaa62501dd806b5ed57",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 73852122,
"VirtualSize": 73852122,
"GraphDriver": {
"Data": null,
"Name": "aufs"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f",
"sha256:9e53fd4895597d04f8871a68caea4c686011e1fbd0be32e57e89ada2ea5c24c4",
"sha256:2a19bd70fcd4ce7fd73b37b1b2c710f8065817a9db821ff839fe0b4b4560e643",
"sha256:8891751e0a1733c5c214d17ad2b0040deccbdea0acebb963679735964d516ac2"
]
},
"Metadata": {
"LastTagTime": "2020-05-19T14:02:15.187927921+08:00"
}
}
]
既然镜像文件由多个层组成, 那么怎么知道各个层的内容具体是什么呢?这时候可以使
用history子命令, 该命令将列出各层的创建信息。
root@hk:~# docker history ubuntu:latest
IMAGE CREATED CREATED BY SIZE COMMENT
1d622ef86b13 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 3 weeks ago /bin/sh -c mkdir -p /run/systemd && echo 'do… 7B
<missing> 3 weeks ago /bin/sh -c set -xe && echo '#!/bin/sh' > /… 811B
<missing> 3 weeks ago /bin/sh -c [ -z "$(apt-get indextargets)" ] 1.01MB
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:a58c8b447951f9e30… 72.8MB
使用 docker官方仓库中的镜像。 语法为 docker search [op巨on]keyword
search 命令可以搜索 。
使用 docker rmi 或rmi IMAGE docker [IMAGE … ],imagerm 命令可以删除镜像,
命令格式为 docker
其中 IMAGE 可以为标签或 ID 。
root@hk:~# docker rmi myubuntu:latest
Untagged: myubuntu:latest
使用docker ps -a命令可以看到本机上存在的所有容器