【云原生-Docker】Docker镜像的使用

【云原生-Docker】Docker镜像的使用_第1张图片
博客主页:@不会压弯的小飞侠
欢迎关注:点赞收藏留言
系列专栏:Docker学习专栏
学习社区:不会压弯的小飞侠
知足上进,不负野心。
欢迎大佬指正,一起学习!一起加油!

在这里插入图片描述

目录

  • 简介
  • 获取镜像
  • 列出镜像
    • 镜像体积
    • 中间层镜像
    • 虚悬镜像
  • 删除本地镜像


简介

Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像。

获取镜像

1.Docker Hub 上有大量的高质量的镜像可以用,从 Docker 镜像仓库获取镜像的命令是 docker pull。

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

2.具体的选项可以通过 docker pull --help 命令看到。

  • Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。
  • 默认地址是 Docker Hub。
  • 仓库名:仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
$ docker pull ubuntu:16.04
16.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:16.04

3.上面的命令中没有给出 Docker 镜像仓库地址,因此会从 Docker Hub 获取镜像。而镜像名称是 ubuntu:16.04,因此将会获取官方镜像 library/ubuntu 仓库中标签为 16.04 的镜像。

  • 从 Docker Hub下载镜像非常缓慢,可以根据镜像加速器配置加速器。
  • 有了镜像后,就能够以这个镜像为基础启动并运行一个容器。以上面的 ubuntu:16.04 为例,启动里面的 bash 并且进行交互式操作的话,可以执行下面的命令。
$ docker run -it --rm \
    ubuntu:16.04 \
    bash

root@e7009c6ce357:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.4 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
  • 参数说明
    • -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。
    • –rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。
    • ubuntu:16.04:这是指用 ubuntu:16.04 镜像为基础来启动容器。
    • bash:放在镜像名后的是命令,希望有个交互式 Shell,因此用的是 bash。
  • 进入容器后,可以在 Shell 下操作,执行任何所需的命令。这里执行了 cat /etc/os-release,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 Ubuntu 16.04.4 LTS 系统。
  • 通过 exit 退出这个容器。

列出镜像

  • 要想列出已经下载下来的镜像,可以使用 docker image ls 命令
$ docker image ls
  • 列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间。
  • 镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个标签ubuntu:16.04 和 ubuntu:latest 拥有相同的 ID,因为它们对应的是同一个镜像。

镜像体积

  • 通过以下命令来便捷的查看镜像、容器、数据卷所占用的空间。
$ docker system df

中间层镜像

  • 为了加速镜像构建、重复利用资源,Docker 会利用 中间层镜像,默认的 docker image ls 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 -a 参数。
$ docker image ls -a

虚悬镜像

  • 这个镜像既没有仓库名,也没有标签,均为
<none>               <none>              00285df0df87        15 days ago          342 MB
  • 无标签镜像也被称为 虚悬镜像,可以用下面的命令专门显示这类镜像:
$ docker image ls -f dangling=true
  • 虚悬镜像是可以删除的,可以用下面的命令删除。
$ docker image prune

删除本地镜像

1.删除本地的镜像,可以使用 docker image rm 命令,其格式为:

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

2.用 ID、镜像名、摘要删除镜像

$ docker image ls

3.删除 redis:alpine 镜像

$ docker image rm 501

4.使用镜像名,也就是 <仓库名>:<标签>,来删除镜像

$ docker image rm centos

5.使用镜像摘要 删除镜像。

$ docker image ls --digests

6.docker image ls 命令来配合

  • 需要删除所有仓库名为 redis 的镜像
$ docker image rm $(docker image ls -q redis)
  • 删除所有在 mongo:3.2 之前的镜像
$ docker image rm $(docker image ls -q -f before=mongo:3.2)

【云原生-Docker】Docker镜像的使用_第2张图片

你可能感兴趣的:(Docker,云原生,docker,java)