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容器化 --> 介绍安装镜像的使用的主要内容,如果未能解决你的问题,请参考以下文章