docker镜像

189 阅读2分钟

使用docker镜像

Docker hub是docker提供的精选仓库,包含许多高质量的镜像,如何获取这些镜像呢?

  1. 从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

  1. 运行 有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 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
  1. 列出镜像
  • 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;
  1. 删除本地镜像 如果要删除本地的镜像,可以使用 docker image rm 命令,其格式为:
$ docker image rm [选项] <镜像1> [<镜像2> ...]