二建证从住房建设厅网站调出流程,丹徒网站建设要多少钱,花店o2o的特色,json文件怎样用于wordpress前言
那么这里博主先安利一些干货满满的专栏了#xff01;
首先是博主的高质量博客的汇总#xff0c;这个专栏里面的博客#xff0c;都是博主最最用心写的一部分#xff0c;干货满满#xff0c;希望对大家有帮助。
高质量博客汇总
然后就是博主最近最花时间的一个专栏…
前言
那么这里博主先安利一些干货满满的专栏了
首先是博主的高质量博客的汇总这个专栏里面的博客都是博主最最用心写的一部分干货满满希望对大家有帮助。
高质量博客汇总
然后就是博主最近最花时间的一个专栏《Docker从认识到实践再到底层原理》希望大家多多关注
Docker从认识到实践再到底层原理 第五章-镜像
Docker镜像是什么 Docker image本质上是一个read-only只读文件这个文件包含了文件系统源码、库文件、依赖、工具等一些运行行application 所必须的文件。 我们可以把 Docker image 理解成一个模板可以通过这个模板实例化出来很多容器。 image 里面是一层层文件系统Union FS。联合文件系统可以将几层目录挂载到一起形成一个虚拟文件系统。
每一层文件系统我们叫做一层 layer联合文件系统可以对每一层文件系统设置三 种权限只读(readonly)、读写(readwrite)和写出(whiteout-able)但是 docker 镜像中每一层文件系统都是只读的。
构建镜像的时候从一个最基本的操作系统开始每个构建的操作都相当于做一层 的修改增加了一层文件系统。一层层往上叠加上层的修改会覆盖底层该位置的可见性这也很容易理解就像上层把底层遮住了一样。当你使用的时候你只会看到 一个完全的整体你不知道里面有几层也不清楚每一层所做的修改是什么。
镜像命令详解
命令清单
命令别名功能docker imagesdocker image ls / docker image list列出本地镜像docker tagdocker image tag给镜像打标签 可用于推送镜像仓库docker pulldocker image pull从镜像仓库拉取镜像docker pushdocker image push推送镜像到仓库docker rmidocker image rm / docker image remove删除本地镜像docker builddocker image build通过 dockerfile制作镜像docker savedocker image save将制定镜像保存成tar归档文件docker loaddocker image load导入使用 docker save 导出的镜像docker image inspect查看镜像的详细信息docker historydocker image history查看镜像历史docker importdocker image import从归档文件 docker export 中创建镜像docker image prune删除不使用的镜 像
在这一章我们只详细介绍上面的部分命令有一些我们会到特定的章节详细讲解。
docker rmi
删除本地某个镜像。
docker rmi [OPTIONS] IMAGE [IMAGE...]关键参数。
-f : 强制删除
-no-prune : 不移除该镜像的过程镜像默认移除docker save 和 docker load
docker save [OPTIONS] IMAGE [IMAGE...] # -o :输出到的文件docker save -o mybusybox.tar busybox:1.36.0 # 保存这个镜像文件现在可以把这个镜像加载回来。
docker load [OPTIONS]关键参数
--input, -i : 指定导入的文件代替 STDIN。
--quiet, -q : 精简输出信息。docker history
docker history [OPTIONS] IMAGE-H, --human : 大小和日期采用人容易读的格式展现
--no-trunc : 显示全部信息不要隔断;
-q, --quiet : 只显示镜像 id 信息;其他参数大家都可以尝试。
docker image prune
删除不使用的镜像。
-a, --all : 删除全部不使用的镜像;
--filter filter : 指定过滤条件;
-f, --force : 不提示是否删除;[rootALiCentos7:/home/yufc/Src/Bit-Courses/DockerSrc/test]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.24.0 bf09be6b0005 2 weeks ago 142MB
nginx 1.25.2 eea7b3dcba7e 2 weeks ago 187MB
yufcbagpack/my-bit-nginx 1.25.2 eea7b3dcba7e 2 weeks ago 187MB
busybox 1.36.0 af2c3e96bcf1 3 months ago 4.86MB
yufcbagpack/busybox-by-yufc v1.0 af2c3e96bcf1 3 months ago 4.86MB
centos 7 eeb6ee3f44bd 23 months ago 204MB
nginx 1.18.0-alpine 684dbf9f01f3 2 years ago 21.9MB
[rootALiCentos7:/home/yufc/Src/Bit-Courses/DockerSrc/test]$ 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: busybox:1.36.0
untagged: busyboxsha256:9e2bbca079387d7965c3a9cee6d0c53f4f4e63ff7637877a83c4c05f2a666112
untagged: yufcbagpack/busybox-by-yufc:v1.0
untagged: yufcbagpack/busybox-by-yufcsha256:086417a48026173aaadca4ce43a1e4b385e8e62cc738ba79fc6637049674cac0
deleted: sha256:af2c3e96bcf1a80da1d9b57ec0adc29f73f773a4a115344b7e06aec982157a33
deleted: sha256:1f1d08b81bbe3cb8d730d2e163d6737b4352192712b1f1548720dc224f6cac06
untagged: nginx:1.18.0-alpine
untagged: nginxsha256:93baf2ec1bfefd04d29eb070900dd5d79b0f79863653453397e55a5b663a6cb1
deleted: sha256:684dbf9f01f3250437d595669c7437c202573798ab34247d50338ff630e58b6a
deleted: sha256:c2de14d9781a9624082602f51baa465d1904cf681e8209bec5e0a40054897f49
deleted: sha256:6774274a318ea7dfe5fb9dd3fe1f625e463352ba889f6f9fb2222e4783bcd209
deleted: sha256:485b3a00a3b7092170c9612a95637ee7e1ff6b6bdc915c5131eb07983d02171d
deleted: sha256:c5ddcad13e93c4e6d6cf10c03bf14f0a8fc8a2a5435b87e300394fbc9977a02c
deleted: sha256:9a5d14f9f5503e55088666beef7e85a8d9625d4fa7418e2fe269e9c54bcb853c
untagged: nginx:1.25.2
untagged: nginxsha256:104c7c5c54f2685f0f46f3be607ce60da7085da3eaa5ad22d3d9f01594295e9c
untagged: yufcbagpack/my-bit-nginx:1.25.2
untagged: yufcbagpack/my-bit-nginxsha256:48a84a0728cab8ac558f48796f901f6d31d287101bc8b317683678125e0d2d35
deleted: sha256:eea7b3dcba7ee47c0d16a60cc85d2b977d166be3960541991f3e6294d795ed24
deleted: sha256:589bcc284f24d6548cd3cef06ace5f6ebc4f23a48a5763f2f9d3d30b0f9dadf5
deleted: sha256:b3addc7069fafd183d88d1a40bb3dfe51227d45e4fe8e59b81a2fda7614ebbc1
deleted: sha256:5bf28af6a2188fa2d657e451213761b03e115e4c24ee72c41da34a241fe81ca1
deleted: sha256:2496134da21702d935bee1334ae42baf26d0197af91275e5c1a11eee31299121
deleted: sha256:c7e60968a54882c23483c3acb0ff1f415ce0f98184dfbed3fb9080447d79b313
deleted: sha256:49bfd4a4ea578aefcacdfd87efdc4999d6a4e4b7f00322484cac67ff7671389e
deleted: sha256:511780f88f80081112aea1bfdca6c800e1983e401b338e20b2c6e97f384e4299
untagged: centos:7
untagged: centossha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4
deleted: sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9
deleted: sha256:174f5685490326fc0a1c0f5570b8663732189b327007e47ff13d2ca59673db02
untagged: nginx:1.24.0
untagged: nginxsha256:a195f9fb6503531660b25f9aeefef1f48bbaf56f46da04bffe1568abb3d3aff6
deleted: sha256:bf09be6b0005cc81d4cc3c3cf836c84450e92a7c4dcb2e2e31d84843ff3d6c62
deleted: sha256:ff7c49c7e5d3258f6e702b5259ac2bdc8986bb04b24b2b7117925b4d26844596
deleted: sha256:7c0b5de76892cd4ea9baac2b125bfafa689f059f1a160993549208d348789473
deleted: sha256:06409bd4a1a7f2e234292dfeba96fb76d9cff1256e41e5df13d38a6f47488aa3
deleted: sha256:401de303ad1d4c865aab0018974df56eb349a04fdfb88a8e4c5c91fa1036a03f
deleted: sha256:5d87999cc8379e200e5702df879ba59805993578ac8cc20c4376d84274ab79f5
deleted: sha256:63290f9c9e5201f0507ee1b5701aa06c7f48bef7cce287fc77db92bec634d737Total reclaimed space: 559.5MB
[rootALiCentos7:/home/yufc/Src/Bit-Courses/DockerSrc/test]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[rootALiCentos7:/home/yufc/Src/Bit-Courses/DockerSrc/test]$ 镜像操作案例
实战流程如下所示。 #mermaid-svg-sV3PPRaWuQPxVpM3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sV3PPRaWuQPxVpM3 .error-icon{fill:#552222;}#mermaid-svg-sV3PPRaWuQPxVpM3 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-sV3PPRaWuQPxVpM3 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-sV3PPRaWuQPxVpM3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-sV3PPRaWuQPxVpM3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-sV3PPRaWuQPxVpM3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-sV3PPRaWuQPxVpM3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-sV3PPRaWuQPxVpM3 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-sV3PPRaWuQPxVpM3 .marker.cross{stroke:#333333;}#mermaid-svg-sV3PPRaWuQPxVpM3 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-sV3PPRaWuQPxVpM3 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-sV3PPRaWuQPxVpM3 .cluster-label text{fill:#333;}#mermaid-svg-sV3PPRaWuQPxVpM3 .cluster-label span{color:#333;}#mermaid-svg-sV3PPRaWuQPxVpM3 .label text,#mermaid-svg-sV3PPRaWuQPxVpM3 span{fill:#333;color:#333;}#mermaid-svg-sV3PPRaWuQPxVpM3 .node rect,#mermaid-svg-sV3PPRaWuQPxVpM3 .node circle,#mermaid-svg-sV3PPRaWuQPxVpM3 .node ellipse,#mermaid-svg-sV3PPRaWuQPxVpM3 .node polygon,#mermaid-svg-sV3PPRaWuQPxVpM3 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-sV3PPRaWuQPxVpM3 .node .label{text-align:center;}#mermaid-svg-sV3PPRaWuQPxVpM3 .node.clickable{cursor:pointer;}#mermaid-svg-sV3PPRaWuQPxVpM3 .arrowheadPath{fill:#333333;}#mermaid-svg-sV3PPRaWuQPxVpM3 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-sV3PPRaWuQPxVpM3 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-sV3PPRaWuQPxVpM3 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-sV3PPRaWuQPxVpM3 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-sV3PPRaWuQPxVpM3 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-sV3PPRaWuQPxVpM3 .cluster text{fill:#333;}#mermaid-svg-sV3PPRaWuQPxVpM3 .cluster span{color:#333;}#mermaid-svg-sV3PPRaWuQPxVpM3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-sV3PPRaWuQPxVpM3 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 查找镜像 下载镜像 查看镜像及列表存储位置 查看镜像详情 #mermaid-svg-AcnKvkP1DW1Yx42X {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-AcnKvkP1DW1Yx42X .error-icon{fill:#552222;}#mermaid-svg-AcnKvkP1DW1Yx42X .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-AcnKvkP1DW1Yx42X .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-AcnKvkP1DW1Yx42X .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-AcnKvkP1DW1Yx42X .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-AcnKvkP1DW1Yx42X .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-AcnKvkP1DW1Yx42X .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-AcnKvkP1DW1Yx42X .marker{fill:#333333;stroke:#333333;}#mermaid-svg-AcnKvkP1DW1Yx42X .marker.cross{stroke:#333333;}#mermaid-svg-AcnKvkP1DW1Yx42X svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-AcnKvkP1DW1Yx42X .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-AcnKvkP1DW1Yx42X .cluster-label text{fill:#333;}#mermaid-svg-AcnKvkP1DW1Yx42X .cluster-label span{color:#333;}#mermaid-svg-AcnKvkP1DW1Yx42X .label text,#mermaid-svg-AcnKvkP1DW1Yx42X span{fill:#333;color:#333;}#mermaid-svg-AcnKvkP1DW1Yx42X .node rect,#mermaid-svg-AcnKvkP1DW1Yx42X .node circle,#mermaid-svg-AcnKvkP1DW1Yx42X .node ellipse,#mermaid-svg-AcnKvkP1DW1Yx42X .node polygon,#mermaid-svg-AcnKvkP1DW1Yx42X .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-AcnKvkP1DW1Yx42X .node .label{text-align:center;}#mermaid-svg-AcnKvkP1DW1Yx42X .node.clickable{cursor:pointer;}#mermaid-svg-AcnKvkP1DW1Yx42X .arrowheadPath{fill:#333333;}#mermaid-svg-AcnKvkP1DW1Yx42X .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-AcnKvkP1DW1Yx42X .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-AcnKvkP1DW1Yx42X .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-AcnKvkP1DW1Yx42X .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-AcnKvkP1DW1Yx42X .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-AcnKvkP1DW1Yx42X .cluster text{fill:#333;}#mermaid-svg-AcnKvkP1DW1Yx42X .cluster span{color:#333;}#mermaid-svg-AcnKvkP1DW1Yx42X div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-AcnKvkP1DW1Yx42X :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 查看镜像详情 查看镜像分层 打标签 推送镜像 运行容器 镜像删除 查找镜像
docker search busybox下载镜像
docker pull busybox:1.36.0下载成功。
[rootALiCentos7:/home/yufc/Src/Bit-Courses/DockerSrc/test]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox 1.36.0 af2c3e96bcf1 3 months ago 4.86MB
[rootALiCentos7:/home/yufc/Src/Bit-Courses/DockerSrc/test]$查看镜像及列表存储位置
东西存在这。
cd /data/var/lib/docker # 我们改过的要记得哦[rootALiCentos7:/data/var/lib/docker]$ ll
total 44
drwx--x--x 4 root root 4096 Sep 1 20:57 buildkit
drwx--x--- 2 root root 4096 Sep 5 22:18 containers
-rw------- 1 root root 36 Sep 1 20:57 engine-id
drwx------ 3 root root 4096 Sep 1 20:57 image
drwxr-x--- 3 root root 4096 Sep 1 20:57 network
drwx--x--- 4 root root 4096 Sep 5 22:45 overlay2
drwx------ 4 root root 4096 Sep 1 20:57 plugins
drwx------ 2 root root 4096 Sep 1 20:57 runtimes
drwx------ 2 root root 4096 Sep 1 20:57 swarm
drwx------ 2 root root 4096 Sep 5 22:45 tmp
drwx-----x 2 root root 4096 Sep 1 20:57 volumes
[rootALiCentos7:/data/var/lib/docker]$ cd image/
[rootALiCentos7:/data/var/lib/docker/image]$ ls
overlay2
[rootALiCentos7:/data/var/lib/docker/image]$ cd overlay2/
[rootALiCentos7:/data/var/lib/docker/image/overlay2]$ ls
distribution imagedb layerdb repositories.json
[rootALiCentos7:/data/var/lib/docker/image/overlay2]$ cat repositories.json
{Repositories:{busybox:{busybox:1.36.0:sha256:af2c3e96bcf1a80da1d9b57ec0adc29f73f773a4a115344b7e06aec982157a33,busyboxsha256:9e2bbca079387d7965c3a9cee6d0c53f4f4e63ff7637877a83c4c05f2a666112:sha256:af2c3e96bcf1a80da1d9b57ec0adc29f73f773a4a115344b7e06aec982157a33}}}[rootALiCentos7:/data/var/lib/docker/image/overlay2]$ 关注这里面的一个一个文件夹/data/var/lib/docker/image/overlay2/这里面存的是docker的存储驱动。
我们可以看下repositories.json 这里面的内容。
{Repositories: {busybox: {busybox:1.36.0: sha256:af2c3e96bcf1a80da1d9b57ec0adc29f73f773a4a115344b7e06aec982157a33,busyboxsha256:9e2bbca079387d7965c3a9cee6d0c53f4f4e63ff7637877a83c4c05f2a666112: sha256:af2c3e96bcf1a80da1d9b57ec0adc29f73f773a4a115344b7e06aec982157a33}}
}可以看到我们是有一个busybox镜像的。
所以东西是存在这里的列表是在这里面的。
也可以通过这个命令查看镜像的详情。
docker image inspect busybox:1.36.0当然dockerhub上也可以看这些信息。
查看镜像分层
docker history busybox:1.36.0[rootALiCentos7:/data/var/lib/docker/image/overlay2]$ docker history busybox:1.36.0
IMAGE CREATED CREATED BY SIZE COMMENT
af2c3e96bcf1 3 months ago /bin/sh -c #(nop) CMD [sh] 0B
missing 3 months ago /bin/sh -c #(nop) ADD file:c22c6617fa9a85e0d… 4.86MB
[rootALiCentos7:/data/var/lib/docker/image/overlay2]$ 打标签
docker tag busybox:1.36.0 yufcbagpack/busybox-by-yufc:v2.0推送镜像
docker push yufcbagpack/busybox-by-yufc:v2.0运行容器
先查看现在有的镜像。
[rootALiCentos7:/data/var/lib/docker/image/overlay2]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox 1.36.0 af2c3e96bcf1 3 months ago 4.86MB
yufcbagpack/busybox-by-yufc v2.0 af2c3e96bcf1 3 months ago 4.86MB
[rootALiCentos7:/data/var/lib/docker/image/overlay2]$ 运行容器。
[rootALiCentos7:/data/var/lib/docker/image/overlay2]$ docker run -it yufcbagpack/busybox-by-yufc:v2.0 sh
/ # 现在就启动这个镜像了。
删除这个镜像
docker rmi yufcbagpack/busybox-by-yufc:v2.0我们可以发现其实不是删除了这个镜像而是只是去除了标签而已。
用docker rm 进一步删除 镜像仓库实战
实战一离线迁移镜像
现有的镜像如下。 保存下来。
把这个tar包发到另一台服务器后可以使用scp命令
然后在另一台服务器使用docker load -i载入这个镜像即可。
实战二镜像存储的压缩与共享
先拉一个镜像下来。
docker pull nginx:1.21.4[rootALiCentos7:/home/yufc/Src/Bit-Courses/DockerSrc/test]$ docker pull nginx:1.21.4
1.21.4: Pulling from library/nginx
a2abf6c4d29d: Pull complete
f3409a9a9e73: Pull complete
9919a6cbae9c: Pull complete
fc1ce43285d7: Pull complete
1f01ab499216: Pull complete
13cfaf79ff6d: Pull complete
Digest: sha256:366e9f1ddebdb844044c2fafd13b75271a9f620819370f8971220c2b330a9254
Status: Downloaded newer image for nginx:1.21.4
docker.io/library/nginx:1.21.4
[rootALiCentos7:/home/yufc/Src/Bit-Courses/DockerSrc/test]$我们发现拉到本地是141MB
我们看看hub上的大小。 所以在hub上肯定是进行了一定的压缩的。