Docker 入门到实践(四)Docker 使用镜像

一、获取镜像

Docker Hub 上有大量的高质量的镜像让我们获取,命令为:

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

具体的选项可以通过 docker pull --help 来查看。

[Docker Registry 地址[:端口号]/] :这个指的就是 域名/IP[:端口号],默认就是 Docker Hub 的地址。

仓库名[:标签]:仓库名是一个两段式名称,是 <用户名>/<软件名>,用户名默认是 library,也就是官方镜像。

例如:

$ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
bf5d46315322: Pull complete
9f13e0ac480c: Pull complete
e8988b5b3097: Pull complete
40af181810e7: Pull complete
e6f7c7e5c03e: Pull complete
Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe
Status: Downloaded newer image for ubuntu:18.04

如上图所示,没有给出镜像地址,docker 便会去 Docker Hub 上获取,而仓库名是  library/ubuntu,标签是 18.04,默认就是 library,官方镜像。

二、运行镜像

docker run -i -t --rm --name my_ubuntu ubuntu:18.04 bash
root@e7009c6ce357:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.1 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

我们来解释一下各个参数的意义。

  • -i : 交互式操作。
  • -t : 开启一个终端。
  • --rm : 指的是容器运行退出之后自动删除容器,这里我们只是运行试试看,不需要保留所创造的容器。
  • --name : 是给你所创造的容器起的名字。
  • ubuntu:18.04 :这是镜像的名字
  • bash : 跟在镜像后面的是命令,我们希望有个交互式的 shell,因此用的是 bash。

cat /etc/os-release 查看系统版本命令,结果中我们看到系统是 ubuntu:18.04 LTS,然后输入 exit 退出容器。

三、列出镜像

$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0584b3d2cf6d 3 weeks ago 196.5 MB
redis alpine 501ad78535f0 3 weeks ago 21.03 MB
docker latest cf693ec9b5c7 3 weeks ago 105.1 MB
nginx latest e43d811ce2f4 5 weeks ago 181.5 MB

列表里包括了  仓库名,标签,镜像 ID,创建时间,镜像大小。

由于 Docker 使用 Union FS,相同的镜像层秩序保存一个,所以镜像大小不代表实际占有硬盘大小。

可以通过使用一下命令查看镜像,容器,数据卷占用硬盘情况:

$ docker system df

TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images 24 0 1.992GB 1.992GB (100%)
Containers 1 0 62.82MB 62.82MB (100%)
Local Volumes 9 0 652.2MB 652.2MB (100%)
Build Cache 0B 0B

四、删除镜像

如果要删除本地镜像,那么使用下面的格式:

$ docker image rm [选项] <镜像1> [<镜像2> ...]

上面的镜像一般是指 镜像ID,或者镜像名来删除

镜像 ID 分为长 ID 和短 ID,通常我们 docker images 显示的就是短 ID 了,但是删除镜像时,使用短 ID 的前三个字符一般就可以区分镜像了。例如删除上面的 redis 镜像:

$ docker image rm
Untagged: redis:alpine
Untagged: redis@sha256:f1ed3708f538b537eb9c2a7dd50dc90a706f7debd7e1196c9264edeea521a86d
Deleted: sha256:501ad78535f015d88872e13fa87a828425117e3d28075d0c117932b05bf189b7
Deleted: sha256:96167737e29ca8e9d74982ef2a0dda76ed7b430da55e321c071f0dbff8c2899b
Deleted: sha256:32770d1dcf835f192cafd6b9263b7b597a1778a403a109e2cc2ee866f74adf23
Deleted: sha256:127227698ad74a5846ff5153475e03439d96d4b1c7f2a449c7a826ef74a2d2fa
Deleted: sha256:1333ecc582459bac54e1437335c0816bc17634e131ea0cc48daa27d32c75eab3
Deleted: sha256:4fc455b921edf9c4aea207c51ab39b10b06540c8b4825ba57b3feed1668fa7c7

还可以使用镜像名字删除,这里的镜像名字指的是 仓库名:标签,例如删除上面的 centos 镜像:

$ docker image rm centos
Untagged: centos:latest
Untagged: centos@sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c
Deleted: sha256:0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a
Deleted: sha256:97ca462ad9eeae25941546209454496e1d66749d53dfa2ee32bf1faabd239d38
上一篇:在IE浏览器输入测试servlet程序报:HTTP Status 404(The requested resource is not available)错


下一篇:docker之数据卷管理