linux12 - docker容器化 --> 介绍安装镜像的使用

Posted FikL-09-19

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux12 - docker容器化 --> 介绍安装镜像的使用相关的知识,希望对你有一定的参考价值。

一、docker介绍

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容LXC)等技术。在 LXC 的基础上 Docker进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低

# docker 
  容器,将应用程序打包到一个环境中,隔离运行,解决异构环境下应用部署问题。。

1.Docker 容器虚拟化的好处

在云时代,开发者创建的应用必须要能很方便地在网络上传播,也就是说应用必须脱离底层物理硬件的限制;同时必须满足“任何时间任何地点”可获取可使用的特点。因此,开发者们需要一种新型的创建分布式应用程序的方式,快速分发部署,而这正是 Docker 所能够提供的最大优势。Docker 提供了一种更为聪明的方式,通过容器来打包应用、解耦应用和运行平台。这意味着迁移的时候,只需要在新的服务器上启动需要的容器就可以了,无论新旧服务器是否是同一类别的平台。这无疑帮助我们节约了大量的宝贵时间,并降低部署过程出现问题的风险。
# 容器与虚拟机之间区别?
- 进程级别的隔离 : 
- 操作系统级别的隔离:

# 优势:
- 容器启动时秒级,操作系统时分钟级

2.Docker 在开发和运维中的优势

对于开发和运维人员来说,最梦寐以求的效果可能就是一次创建和配置,之后可以在任意地方、任意时间让
应用正常运行,而 Docker 恰恰可以实现这一中级目标。具体来说,在开发和运维过程中,Docker 具有以下几
个方面的优势:

# 更快的交付和部署:使用 Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完之后,测试和运维人员可以直接使用完全相同的环境来部署代码。只要是开发测试过的代码,就可以确保在生产环境无缝运行。Docker 可以快速创建和删除容器,实现快速迭代,节约开发、测试及部署的时间。

# 更高效的利用资源:运行 Docker 容器不需要额外的虚拟化管理程序的支持,Docker 是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低,与传统的虚拟机方式相比,Docker 的性能要提高 1 ~ 2 个数量级

# 更轻松的迁移和扩展:Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑等等,同时支持主流的操作系统发行版本。这种兼容性能让用户可以在不同的平台之间轻松的迁移应用。

# 更轻松的管理和更新:使用 Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的容器管理。

3.Docker 与虚拟机的比较

作为一种轻量级的虚拟化方式,Docker 在运行应用上跟传统的虚拟机的方式相比具有如下显著优势:
# Docker 容器启动很快,启动和停止可以实现秒级,相比传统的虚拟机方式(分钟级)要快速很多。
# Docker 容器对系统资源需求很少,一台主机上可以同时运行数千个 Docker 容器。
# Docker 通过类似 git 设计理念的操作来方便用户获取、分发和更新应用镜像,存储复用,增量更新。
# Docker 通过 Dockerfile 支持灵活的自动化创建和部署机制,可以提高工作效率,并标准化流程。
特性容器虚拟机
启动速度快秒级分钟级
性能接近原生较好
内存MB级GB级
硬盘适应MB级GB级
运行密度单台主机支持上千个单台主机支持几个
隔离性安全隔离完全隔离
迁移优秀一般

在这里插入图片描述

虚拟机技术缺点

资源占用十分多
冗余步骤多
启动很慢
容器化技术不是模拟的一个完整的操作系统

二、Docker 概念和使用

Docker 中有三个核心概念

# 1、镜像  
镜像就是启动一个容器的模板
# 2、容器     
容器就是对外提供服务的进程,或者容器就是镜像启动起来的一个实例(启动一下nginx,那么nginx就是容器)
# 3、仓库
仓库是用来存放镜像的地方

因此,准确把握这三大概念对于掌握 Docker 技术尤为重要

#1.镜像(Image)
Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统

#2.容器(Container)
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

#3.仓库(Repository)
用来保存镜像的仓库。当我们构建好自己的镜像之后,需要存放在仓库中,当我们需要启动一个镜像时,可以在仓库中下载下来。

底层原理

#1.docker是怎么工作的?
docker是一个CS结构的系统,docker的守护进程运行在主机上,通过socket从客户端访问!
dockerserver接收到dockerclient的指令,就会执行这个命令!

在这里插入图片描述

1.docker 安装

#1.如果之前安装过docker,需要自行卸载   #华为镜像源 
[root@docter yum.repos.d]# sudo yum remove docker docker-common docker-selinux docker-engine -y
#2.初始化系统环境
[root@docter yum.repos.d]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2

#3.安装yum源
[root@docter yum.repos.d]# wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo

#4.软件仓库地址替换
sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

#5.清空缓存
[root@docter yum.repos.d]# yum clean all
[root@docter yum.repos.d]# yum makecache

#6.安装docker
[root@docter yum.repos.d]# yum install docker-ce -y  #ce社区版  #ee企业版

#7.docker优化 (镜像加速器)
打开阿里云官网  产品  --> 容器与中间件  -->  容器与镜像服务ACR --> 管理控制台 --> 镜像加速器 --> CentOS

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://k7eoap03.mirror.aliyuncs.com"]
}
EOF
#8.启动并设置开机自启
[root@docter yum.repos.d]# systemctl daemon-reload
[root@docter yum.repos.d]# systemctl enable --now docker.service 
#9.检查docker
   1)第一种方式
[root@docter yum.repos.d]# docker info #推荐第一种方式
   2)第一种方式
[root@docter yum.repos.d]# docker run -d -P nginx
[root@docter yum.repos.d]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED              STATUS              PORTS                                     NAMES
2cf9d0e88a05   nginx     "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:49153->80/tcp, :::49153->80/tcp   stoic_shirley

# 访问 192.168.15.30:49153

扩展:docker卸载

#1.卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#2.删除目录
rm -rf /var/lib/docker   #docker默认的工作路径
#3.镜像加速器(docker优化)
 - 登录阿里云找到容器镜像服务
 - 找到镜像加速地址
 - 配置使用

在这里插入图片描述

三、docker镜像相关命令

1、常用镜像仓库

# 1.官方仓库:hub.docker.com
# 2.自己的私有仓库:Harbor
# 3.阿里云私有仓库:registry.cn-hangzhou.aliyuncs.com

2、搜索镜像

#格式:
docker search [镜像名称]

#实例:
[root@docker ~]# docker search mysql

#参数
[root@docker ~]# docker search mysql --filter=STARS=3000   #搜索出来的镜像就是STARS大于3000的

-f:筛选
[root@docter ~]# docker search -f stars=2000 nginx
NAME                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                 Official build of Nginx.                        15034       [OK]       
jwilder/nginx-proxy   Automated Nginx reverse proxy for docker con…   2038                    [OK]

[root@docter ~]# docker search mysql
NAME                 DESCRIPTION           STARS           OFFICIAL            AUTOMATED
# 镜像名称            # 描述信息            #收藏个数       #是否官方镜像          #自构建镜像
mysql                            Redis is an open source key-value store that…   9586      [OK]       
bitnami/redis                    Bitnami Redis Docker Image                      185                  [OK]

在这里插入图片描述

3、拉取镜像

#格式:
docker pull [镜像名称]

#实例:
[root@docker ~]# docker pull redis
Using default tag: latest  #如果不写tag.默认就是latest(版本号)
latest: Pulling from library/redis
#镜像层
69692152171a: Already exists 
a4a46f2fd7e0: Pull complete 
bcdf6fddc3bd: Pull complete 
2902e41faefa: Pull complete 
df3e1d63cdb1: Pull complete 
fa57f005a60d: Pull complete 
#镜像ID号(镜像ID号是全球唯一)
Digest: sha256:7e2c6181ad5c425443b56c7c73a9cd6df24a122345847d1ea9bb86a5afc76325   #签名
#镜像下载状态
Status: Downloaded newer image for redis:latest
#镜像的全称(镜像的tag)
docker.io/library/redis:latest

4、查看当前系统上有哪些镜像

#格式
docker images 或者 docker image ls
# 方式一
[root@docter ~]# docker image ls
# 方式二
[root@docter ~]# docker images
REPOSITORY      TAG          IMAGE ID            CREATED                      SIZE
# 镜像名称      #镜像版本号   #镜像ID(缩写)    #镜像生成时间距离现在时长         #镜像大小
redis           latest       fad0ee7e917a       2 weeks ago                   105MB
nginx           latest       d1a364dc548d       3 weeks ago                   133MB

#参数
-q : 只显示镜像ID
[root@docker ~]# docker images -q
fad0ee7e917a
d1a364dc548d

--digests=true|false:列出镜像的数字摘要值

[root@docter ~]# docker images --digests=true
REPOSITORY   TAG       DIGEST                                                                    IMAGE ID       CREATED       SIZE
redis        latest    sha256:7e2c6181ad5c425443b56c7c73a9cd6df24a122345847d1ea9bb86a5afc76325   fad0ee7e917a   2 weeks ago   105MB
nginx        latest    sha256:6d75c99af15565a301e48297fa2d121e15d80ad526f8369c526324f0f7ccb750   d1a364dc548d   3 weeks ago   133MB

在这里插入图片描述

5、获取镜像的详细信息

#格式
docker inspect [镜像名称或镜像ID]
[root@docter ~]# docker inspect redis
#参数
-f : 格式化输出
[root@docter ~]#  docker inspect -f '{{.Id}}' fad0ee7e917a
sha256:fad0ee7e917aeec77f15d0a106b8e415f4c0499d341b88c841b9a9f78c3c3ca5
[root@docker ~]# docker inspect -f '{{.ContainerConfig.Hostname}}' redis
ab0fc1cc2522
#‘.’相当于linux里的根===路径

6、登录镜像仓库

#格式
docker login  
[root@docter ~]# docker login
# 默认情况下,docker login登录的是官方仓库,如果登录其他镜像仓库则需要指定镜像仓库的URL连接。

#实例
[root@docter ~]# docker login registry.cn-hangzhou.aliyuncs.com
        Username: yangyang091022
        Password: 
        WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
        Configure a credential helper to remove this warning. See
        https://docs.docker.com/engine/reference/commandline/login/#credentials-store

        Login Succeeded
[root@docter ~]# cat ~/.docker/config.json    #保存的登录信息
    {
        "auths": {
            "registry.cn-hangzhou.aliyuncs.com": {
                "auth": "eWFuZ3lhbmcwOTEwMjI6Y2hlbjE4NzkwMDcwODMw"
            }
        }
    }


# 参数
[root@docter ~]# docker login -h # 帮助信息
--username|-u : 指定用户名
--password|-p : 指定密码

7、为镜像添加标签

#镜像标签的构成
docker.io/library/redis:latest
docker.io  : 镜像仓库的URL
library    :镜像仓库命名空间
redis	   : 镜像名称
latest	   : 镜像版本号

#打标签
 #格式
 docker tag [镜像ID]  镜像标签
 #实例
[root@docter ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        latest    fad0ee7e917a   2 weeks ago   105MB
nginx        latest    d1a364dc548d   3 weeks ago   133MB
[root@docter ~]# docker tag 621ceef7494a registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v2
[root@docter ~]# docker images  #改后查看(名字不同但是ID相同)
REPOSITORY                                        TAG       IMAGE ID       CREATED        SIZE
registry.cn-hangzhou.aliyuncs.com/alvinos/redis   v2        621ceef7494a   2 months ago   104MB
redis                                             latest    fad0ee7e917a   2 weeks ago    105MB
nginx                                             latest    d1a364dc548d   3 weeks ago    133MB

8、镜像上传

#格式
docker push [镜像标签]
注:要想上传镜像,首先得登录镜像仓库,其次设置对应镜像仓库的tag

#实例
[root@docter ~]# docker push registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v2
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/alvinos/redis]
3480f9cdd491: Pushed 
a24a292d0184: Pushed 
f927192cc30c: Pushed 
1450b8f0019c: Pushed 
8e14cb7841fa: Pushed 
cb42413394c4: Pushed 
v2: digest: sha256:7ef832c720188ac7898dbd8d1e237b0738e94f94fc7e981cb7b8efe84555e892 size: 1572

9、镜像的删除

#格式
docker rmi [镜像名称或者镜像ID]

#实例
[root@docter ~]# docker rmi nginx
[root@docter ~]# docker rmi nginx mysql redis  #删除多个镜像
[root@docter ~]# docker rmi -f $(docker images -aq)  #删除全部的镜像

#参数
-f  : 强制删除
[root@docter ~]# docker rmi -f mysql
Untagged: mysql:latest
Untagged: mysql@sha256:d50098d7fcb25b1fcb24e2d3247cae3fc55815d64fec640dc395840f8fa80969
Deleted: sha256:c0cdc95609f1fc1daf2c7cae05ebd6adcf7b5c614b4f424949554a24012e3c09

# 注:当有容器正在使用镜像时,强制删除镜像,只能删除镜像的所有tag, 不会删除镜像。

[root@docter ~]# docker images  #默认镜像
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
<none>       <none>    d1a364dc548d   3 weeks ago   133MB
[root@docter ~]# docker rmi d1a364dc548d  # 删除不掉
Error response from daemon: conflict: unable to delete d1a364dc548d (cannot be forced) - image is being used by running container 2cf9d0e88a05
[root@docter ~]# docker ps   # 查看镜像
CONTAINER ID   IMAGE          COMMAND                  CREATED       STATUS       PORTS                                     NAMES
2cf9d0e88a05   d1a364dc548d   "/docker-entrypoint.…"   2 hours ago   Up 2 hours   0.0.0.0:49153->80/tcp, :::49153->80/tcp   stoic_shirley
[root@docter ~]# docker rm -f 2cf9d0e88a05  #删除镜像的号
2cf9d0e88a05
[root@docter ~]# docker rmi d1a364dc548d  #重新删除成功
Deleted: sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee
Deleted: sha256:fcc8faba78fe8a1f75025781c8fa1841079b75b54fce8408d039f73a48b7a81b
Deleted: sha256:a476b265974ace4c857e3d88b358e848f126297a8249840c72d5f5ea1954a4bf
Deleted: sha256:56722ee1ee7e73a5c6f96ea2959fa442fb4db9f044399bcd939bb0a6eb7919dc
Deleted: sha256:c657df997c75f6c1a9c5cc683e8e34c6f29e5b4c1dee60b632d3477fd5fdd644
Deleted: sha256:e9e1f772d2a8dbbeb6a4a4dcb4f0d07ff1c432bf94fac7a2db2216837bf9ec5b
[root@docter ~]# docker image ls  #查看镜像
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

10、清空镜像

#格式
docker image prune

#实例
[root@Centos7 ~]# docker image prune #默认清空下不删除镜像
    WARNING! This will remove all dangling images.
    Are you sure you want to continue? [y/N] y
    Total reclaimed space: 0B

#参数
-a : 删除所有镜像
[root@docter ~]# docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: redis:latest
untagged: redis@sha256:7e2c6181ad5c425443b56c7c73a9cd6df24a122345847d1ea9bb86a5afc76325
deleted: sha256:fad0ee7e917aeec77f15d0a106b8e415f4c0499d341b88c841b9a9f78c3c3ca5
deleted: sha256:1fcc1c8f8d93df014639e7770125951e2a4014bb6ba113f654d95b5217e1639f
deleted: sha256:e1e32b76f9e2da08414af17e8413c768e26f0c1b9555df187214b25991421b16
deleted: sha256:9efc75a0d640ce670e852cdea02a0fd559c5933269feba3fa16a2a405674d2ba
deleted: sha256:d6f89a74ae79d19535904575f2ee6d08881742af9f33d1f78e2a000b0d3fa26b
deleted: sha256:ac98421641e727deccd15eed0f50bbe33f32689311fd387ad452d33731ba1f9f

11、查看镜像历史(镜像的构建历史)

#格式
docker history [镜像ID或镜像名称]

[root@docter ~]# docker pull alpine  #生成镜像

#实例
[root@docter ~]# docker history alpine
IMAGE          CREATED      CREATED BY                                      SIZE      COMMENT
d4ff818577bc   3 days ago   /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B        
<missing>      3 days ago   /bin/sh -c #(nop) ADD file:f278386b0cef68136…   5.6MB     
[root@docter ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       latest    d4ff818577bc   3 days ago    5.6MB
nginx        latest    d1a364dc548d   3 weeks ago   133MB

12、保存镜像的三种方式

# 保存镜像(commit)
保存正在运行的容器直接为镜像

# 保存镜像(import/export)
 保存容器为镜像,保存正在运行的容器为镜像压缩包
 
# 保存镜像(save/load)
 保存镜像为压缩包

13、保存镜像(commit)

# 保存正在运行的容器直接为镜像
#格式 
docker commit [容器ID|容器名称]

#实例
[root@docter ~]# docker ps  查看docter运行信息
CONTAINER ID   IMAGE     COMMAND                  CREATED              STATUS              PORTS                                     NAMES
c89471939880   nginx     "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:49158->80/tcp, :::49158->80/tcp   stoic_mcnulty

[root@docter ~]# docker commit -a "mm" -m "这是一个docter镜像" -p c89471939880 test:v1
[root@docter ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
test         v1        ad763deaccb4   19 seconds ago   133MB
alpine       latest    d4ff818577bc   3 days ago       5.6MB
nginx        latest    d1a364dc548d   3 weeks ago      133MB

#参数
-a:作者信息
-m:提交信息
-p:提交时,暂停容器运行

14、保存镜像(import/export)

# 保存容器为镜像,保存正在运行的容器为镜像压缩包
  #格式
docker export [容器的ID] > [包名称]
  # 实例
[root@docter[root@docter ~]# docker ps  # 查看docter运行信息
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                     NAMES
c89471939880   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   0.0.0.0:49158->80/tcp, :::49158->80/tcp   stoic_mcnulty
[root@docter ~]# docker export c89471939880 >nginx.tar #保存镜像(打包)
[root@docter ~]# ll |grep nginx
-rw-r--r--  1 root root 135603712 Jun 19 22:05 nginx.tar
[root@docter ~]# gzip nginx.tar 
-rw-r--r--  1 root root 51542981 Jun 19 22:05 nginx.tar.gz  #给镜像压缩
##  导入镜像包 
    #格式
docker import [包名称] [自定义镜像名称]
# 实例
[root@docter ~]# docker import nginx.tar.gz test:v3
sha256:fa817d20d563315ce78553cc7832235be1ae3eee75606edd2b56071651890df0
[root@docter ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
test         v3        fa817d20d563   14 seconds ago   131MB
test         v1        ad763deaccb4   8 minutes ago    133MB
alpine       latest    d4ff818577bc   3 days ago       5.6MB
nginx        latest    d1a364dc548d   3 weeks ago      133MB

15、保存镜像(save/load)

 保存镜像为压缩包
# 保存镜像的格式:
docker save [镜像名称|镜像ID] > [包名称]
[root@docter ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
test         v3        fa817d20d563   4 minutes ago    131MB
test         v1        ad763deaccb4   12 minutes ago   133MB
alpine       latest    d4ff818577bc   3 days ago       5.6MB
nginx        latest    d1a364dc548d   3 weeks ago      133MB
[root@docter ~]# docker save  d1a364dc548d > alpine.tar
total 184508
-rw-r--r--  1 root root 137382400 Jun 19 22:14 alpine.tar

[root@docter ~]# docker save -o alpine1.tar.gz d4ff818577bc
[root@docter ~]# ll
total 190244
-rw-------  1 root root   5873664 Jun 19 22:16 alpine1.tar.gz
-rw-r--r--  1 root root 137382400 Jun 19 22:14 alpine.tar

# 导入镜像的格式:
	docker load < [包名称]
	
[root@docter ~]# docker load < alpine2.tar 
Loaded image ID: sha256:d4ff818577bc193b309b355b02ebc9220427090057b54a59e73b79bdfe139b83
[root@docter ~]# docker images
    REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
    <none>       <none>    7731472c3f2a   2 months ago     5.61MB

# 注:save/load保存镜像无法自定义镜像名称,save保存镜像时如果使用ID保存则load导入镜像无名称,使用名称导入时才有名称。

[root@docter ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
test         v1        ad763deaccb4   25 minutes ago   133MB
busybox      latest    69593048aa3a   11 days ago      1.24MB
nginx        latest    d1a364dc548d   3 weeks ago      133MB
[root@docter ~]# docker save busybox:latest >bustbox.tar
[root@docter ~]# ll
total 51776
-rw-r--r--  1 root root  1463808 Jun 19 22:27 bustbox.tar
[root@docter ~]# docker save busybox:latest >bustbox.tar
[root@docter ~]# docker rmi 69593048aa3a
Untagged: busybox:latest
Untagged: busybox@sha256:930490f97e5b921535c153e0e7110d251134cc4b72bbb8133c6a5065cc68580d
Deleted: sha256:69593048aa3acfee0f75f20b77acb549de2472063053f6730c4091b53f2dfb02
Deleted: sha256:5b8c72934dfc08c7d2bd707e93197550f06c0751023dabb3a045b723c5e7b373
[root@docter ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
test         v1        ad763deaccb4   26 minutes ago   133MB
nginx        latest    d1a364dc548d   3 weeks ago      133MB
[root@docter ~]# docker load < bustbox.tar 
5b8c72934dfc: Loading layer [==================================================>]  1.455MB/1.455MB
Loaded image: busybox:latest
[root@docter ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
test         v1        ad763deaccb4   26 minutes ago   133MB
busybox      latest    69593048aa3a   11 days ago      1.24MB
nginx        latest    d1a364dc548d   3 weeks ago      133MB

16、保存镜像三种方式的区别

1、export保存的镜像体积要小于save(save保存更完全,export保存会丢掉一些不必要的数据)
2、export可以重命名镜像名称而save则不行
3、save可以同时保存多个镜像而export则不行

# export/inport

适用于持久化容器(不是镜像),是导出容器当前的操作系统,不包含分层系统,仅包含当前系统中的状态,相当于虚拟机的快照

保存的镜像体积要小于save(但save保存更完全,export保存会丢掉一些不必要的数据)

export可以重命名镜像名称而save则不行

# save/load

可以同时保存多个镜像而export则不行
适用于持久化镜像(不是容器),是保存一个完整的镜像,包含分层系统统一打包,相当于虚拟机的完整模板机

# docter rmi 删除镜像
# docter rm -rf 删除容器

17、显示docker的版本信息

[root@docter ~]# docker version 
Client: Docker Engine - Community
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        f0df350
 Built:             Wed Jun  2 11:58:10 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

...

18、显示docker的系统信息(包括镜像和容器的数量)

[root@docter ~]# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
  scan: Docker Scan (Docker Inc., v0.8.0)
...

19、万能帮助命令

[root@docter ~]# docker --help 

Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and
                           default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit
...

以上是关于linux12 - docker容器化 --> 介绍安装镜像的使用的主要内容,如果未能解决你的问题,请参考以下文章

linux12 - docker容器化 -->Docker-day3-四种网络模式

持续集成与持续部署宝典Part 1:将构建环境容器化

Linux 容器化技术详解(虚拟化容器化Docker)

云原生之使用Docker部署Linux命令大全搜索工具

云原生之使用Docker部署Linux命令大全搜索工具

容器化工具--------Docker的网络操作