使用docker镜像
Docker hub是docker提供的精选仓库,包含许多高质量的镜像,如何获取这些镜像呢?
- 从docker仓库中获取镜像的命令是
docker pull,其命令格式如下:
$ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
Pull an image or a repository from a registry
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--platform string Set platform if server is multi-platform
capable
-q, --quiet Suppress verbose output
docker镜像名称的格式:
- Docker 镜像仓库地址:地址的格式一般是
<域名/IP>[:端口号]。默认地址是 Docker Hub(docker.io)。 - 仓库名:如之前所说,这里的仓库名是两段式名称,即
<用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为library,也就是官方镜像。eg:
$ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
92dc2a97ff99: Pull complete
be13a9d27eb8: Pull complete
c8299583700a: Pull complete
Digest: sha256:4bc3ae6596938cb0d9e5ac51a1152ec9dcac2a1c50829c74abd9c4361e321b26
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub (docker.io)获取镜像。而镜像名称是 ubuntu:18.04,因此将会获取官方镜像 library/ubuntu 仓库中标签为 18.04 的镜像。docker pull 命令的输出结果最后一行给出了镜像的完整名称,即: docker.io/library/ubuntu:18.04
- 运行
有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的
ubuntu:18.04为例,如果我们打算启动里面的bash并且进行交互式操作的话,可以执行下面的命令:
PS C:\Users\codeyu> docker run -it --rm ubuntu:18.04 bash
root@e1a55a54dcae:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
docker run就是运行容器的命令,参数说明:
-it:这是两个参数,一个是-i:交互式操作,一个是-t终端。我们这里打算进入bash执行一些命令并查看返回结果,因此我们需要交互式终端。--rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动docker rm。ubuntu:18.04:这是指用ubuntu:18.04镜像为基础来启动容器。bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是bash。
- 列出镜像
dockers image ls:
PS C:\Users\codeyu> docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 5a214d77f5d7 6 months ago 63.1MB
centos 7 eeb6ee3f44bd 7 months ago 204MB
列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间。
镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个 标签。
-
docker system df命令来便捷的查看镜像、容器、数据卷所占用的空间:
PS C:\Users\codeyu> docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 1 267.1MB 63.14MB (23%)
Containers 1 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
- 根据仓库名列出镜像:eg:
docker image ls ubuntu; - 列出特定的某个镜像,也就是说指定仓库名和标签:
docker image ls ubuntu:18.04;
- 删除本地镜像
如果要删除本地的镜像,可以使用
docker image rm命令,其格式为:
$ docker image rm [选项] <镜像1> [<镜像2> ...]