Docker之七:Docker 镜像

获取镜像

命令格式:docker [image] pull NAME:[TAG]
格式说明:NAME是镜像仓库名称,用来区分镜像;TAG是镜像标签,通常是版本信息。通常可以使用“名称+标签”来描述一个镜像。

获取Ubuntu系统镜像:

# 获取Ubuntu系统镜像
# 方式1:获取最新版本的Ubuntu系统镜像
$ sudo docker pull ubuntu
# 或
$ sudo docker pull ubuntu:latest
# 方式2:获取指定版本的Ubuntu系统镜像
$ sudo docker pull ubuntu:18.04

下载Ubuntu18.04镜像
pull指令的其它参数:

# 使用docker pull --help可以查看pull支持的子命令选项
$ docker pull --help

pull子命令选项

查看镜像信息

images 命令列出镜像

命令格式:docker images 或 docker image ls

# 列出本地主机的镜像列表
$ sudo docker images
# 或
$ sudo docker image ls

镜像列表
选项字段说明:

字段说明
REPOSITORY像的仓库源,表示镜像来自哪一个仓库
TAG镜像的标签信息,比如18.04表示不同的版本信息
IMAGE ID镜像ID,唯一标识镜像
CREATED镜像创建时间,镜像最后更新时间
SIZE镜像大小 ,镜像体积越小越好

image命令的其它参数:
image命令的其它参数

tag命令添加镜像标签

命令格式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

# 为ubuntu18.04添加新的镜像标签
$ sudo docker tag ubuntu:18.04 myubuntu:18.04

执行完成后再次列出镜像:
添加镜像标签
我们可以发现镜像列表中增加了myubuntu,但是它与ubuntu的IMAGE ID是一样的,所以myubuntu和ubuntu是同一个镜像。

inspect查看镜像详细信息

命令格式:docker inspect [OPTIONS] NAME|ID [NAME|ID…]

# 查看ubuntu:18.04镜像信息
$ sudo docker inspect ubuntu:18.04
# 可以使用-f来获取其中的一项内容

inspect查看镜像详细信息
获取返回信息其中的一项

history 查看镜像历史

命令格式:docker history [OPTIONS] IMAGE

# 查看ubuntu:18.04镜像历史
$ sudo docker history ubuntu:18.04

查看镜像历史

搜寻镜像

搜寻镜像有两种方式:

  1. Docker Hub 网站来搜索镜像。
  2. 通过 docker search 命令来搜索可用镜像。

这里,我们介绍 docker search 搜寻镜像的方法。
首先查看docker search命令格式和详细参数说明:
docker search指令

# 搜索 https镜像
$ sudo docker search httpd

在这里插入图片描述
NAME:标识镜像仓库源的名称;DESCRIPTION: 镜像的描述;OFFICIAL: 是否 docker 官方发布;stars: 表示点赞、喜欢;AUTOMATED: 自动构建。

# 带过滤器的查询,值查询官方发布的httpd
$ sudo docker search --filter=is-official=true httpd

过滤查询

删除和清理镜像

删除镜像

命令格式:docker rmi 或 docker image rm
删除镜像格式
IMAGE可以为标签或ID。

使用标签删除镜像

# 使用镜像标签删除myubuntu
$ sudo docker rmi myubuntu:18.04

使用标签删除镜像

前面我们知道myubuntu:18.04是ubuntu:18.04通过添加的一个标签得到,本质上它们是一个镜像,使用标签删除myubuntu,并不会影响ubuntu:18.04。但当镜像只有一个标签的时候,我们必须消息,因为命令会删除该镜像本身。

使用镜像ID删除镜像

使用镜像ID删除镜像,会先删除所有指向该镜像的标签,然后删除镜像文件本身。

# 使用镜像ID删除myubuntu
$ sudo docker rmi 2c047404e52d

注意事项

当我们要删除的镜像是创建容器存在时,默认不能直接删除镜像。这种情况下,通常由两种方式删除:

  1. 使用-f强制删除。
$ sudo docker rmi -f ubuntu:18.04
  1. 先删除容器,再删除镜像。
    我们首先使用 ubuntu:18.04创建一个简单容器:
$ sudo docker run ubuntu:18.04 echo 'hello! I am here!' 

创建容器
然后尝试删除该镜像:

$ sudo docker rmi ubuntu:18.04

删除镜像ububtu:18.04
提示有一个容器在运行,不能删除。
使用docker ps -a命令查看本机存在的所有的容器:

$ sudo docker ps -a

系统运行的容器
先删除容器5c2fca4bd7fb:

$ sudo docker rm 5c2fca4bd7fb 

删除容器

再删除镜像2c047404e52d:

$ sudo docker rmi 2c047404e52d

删除镜像
ubuntu:18.04已经被成功删除:
在这里插入图片描述

清理镜像

在这里插入图片描述

# 清理镜像
$ sudo docker image prune
# 强制清理镜像
$ sudo docker image prune -f

清理镜像

创建镜像

创建镜像主要有三种方法:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。

基于已有容器创建

命令格式:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
commit命令

  1. 启动一个镜像,并更新这个镜像,可在这个镜像中做一些操作,比如创建文件等:
fgd@ubuntu:~$ sudo docker run -it ubuntu:18.04 /bin/bash
root@17b28018e968:/# apt-get update
root@17b28018e968:/# exit

启动和更新容器
2. 创建镜像
根据第一步,我们可以知道当前容器额ID为17b28018e968,使用commit命令来创建新的容器:

$ sudo docker commit -m="has update" -a="fgd" 17b28018e968 newubuntu:18.04

创建镜像
3.查看创建的镜像
查看新镜像

基于本地模板导入

命令格式:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
docker impor
我们可以到OoenVZ下载一个模板。
下载模板
这里我们选择了centos-7-x86_64.tar.gz。
导入镜像:

$ sudo cat centos-7-x86_64.tar.gz | docker import - centos:7.0

基于Dockerile创建

我们可以使用docker build指令来从零开始创建一个镜像,我们需要创建一个Dockerfile文件,利用给定的指令描述基于父镜像创建新镜像。
docker build命令

这里我们基于CentOS 6.7镜像安装Python 3环境构建一个Python:3镜像。

  1. 创建Dockerfile文件。
    Dockerfile文件
  2. 构建镜像
$ sudo docker build -t python:3 .

构建过程:
构建过程
构建完成:
构建完成
3. 查看镜像
查看镜像

存储和载入镜像

存储镜像

导出镜像并存储为本地文件,可以使用docker save命令:
docker save

# 导出ubuntu:18.04到本地
$ sudo docker save -o ubuntu18.04.tar ubuntu:18.04

导出ubuntu:18.04

载入镜像

可以使用docker load将导出的.tar镜像文件导入到本地镜像库。
docker load

$ sudo docker load -i ubuntu18.04.tar 
# 或
$ sudo docker load < ubuntu18.04.tar 

载入和查看镜像

上传镜像

可以使用docker push命令上传镜像到仓库。
docker push命令格式
docker push默认上传到Docker Hub官方仓库(需要登录)。比如。用户fgd要上传python:3镜像,需要如下几个步骤:

# 为python:3添加新的标签
$ docker tag python:3 fgd/python:3
# 上传fgd/python:3
$ docker push fgd/python:3

第一次上传需要输入登录信息或进行注册,登录信息会记录再本地~/.docker目录下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二流人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值