【Docker】镜像

一.镜像(image)

1.概念

Docker image 本质上是一个 read-only 只读文件, 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。可以把 Docker image 理解成一个类, 可以通过这个类实例化出来很多实例化对象(容器)。

image 里面是一层层文件系统 Union FS。联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统。每一层文件系统我们叫做一层 layer,联合文件系统可以对每一层文件系统设置三种权限,只读(readonly)、读写(readwrite)和写出(whiteout-able),但是 docker 镜像中每一层文件系统都是只读的。

构建镜像的时候,从一个最基本的操作系统开始,每个构建的操作都相当于做一层的修改,增加了一层文件系统。一层层往上叠加,上层的修改会覆盖底层该位置的可见性,这也很容易理解,就像上层把底层遮住了一样。

2.命令

1)docker image

列出本地镜像。

语法:

复制代码
docker images [OPTIONS] [REPOSITORY[:TAG]]

关键参数:

|------------|------------|
| -a | 列出本地所有的镜像 |
| --digests | 显示镜像的摘要信息 |
| -f | 显示满足条件的镜像 |
| --format | 指定返回值的模板文件 |
| --no-trunc | 指定返回值的模板文件 |
| -q | 只显示镜像ID |

2)docker tag

标记本地镜像,将其归入某一仓库。

语法:

复制代码
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

3)docker rmi

删除镜像。

语法:

复制代码
docker rmi [OPTIONS] IMAGE [IMAGE...]

关键参数:

|------------|------------------|
| -f | 强制删除 |
| --no-prune | 不移除该镜像的过程镜像,默认移除 |

4)docker save

将指定镜像保存成tar归档文件(包含文件系统内容的压缩包或tar包)。

语法:

复制代码
docker save [OPTIONS] IMAGE [IMAGE...]

关键参数:

|----|--------|
| -o | 输出到的文件 |

5)docker load

导入使用docker save命令导出的镜像。

语法:

复制代码
docker load [OPTIONS]

关键参数:

|------------|-----------------|
| --input,-i | 指定导入的文件,代替STDIN |
| --quiet,-q | 精简输出信息 |

6)docker image inspect

查看镜像详细信息。

语法:

复制代码
docker image inspect [OPTIONS] IMAGE [IMAGE...]

7)docker history

显示镜像历史。

语法:

复制代码
docker history [OPTIONS] IMAGE

关键参数:

|------------|------------------|
| -H,--human | 大小和日期采用人容易读的格式展现 |
| --no-trunc | 显示全部信息,不要隔断 |
| -q,--quiet | 只显示镜像id信息 |

8)docker import

从归档文件(包含文件系统内容的压缩包或tar包)中创建镜像。

语法:

复制代码
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

关键参数:

|----|----------------|
| -c | 应用docker指令创建镜像 |
| -m | 提交时的说明文字 |

9)docker image prune

删除不使用的镜像(悬空镜像,没有标签且未被任何容器使用)。

语法:

复制代码
docker image prune [OPTIONS]

关键参数:

|------------|----------------------|
| -a,--all | 删除全部不使用的镜像(没被任何容器使用) |
| --filter | 指定过滤条件 |
| -f,--force | 不提示是否删除 |

10)docker build

用于使用 Dockerfile 创建镜像。

语法:

复制代码
docker build [OPTIONS] PATH | URL | -

关键参数:

|------------------|-------------------------------------------------|
| --build-arg=[] | 设置镜像创建时的变量 |
| -f | 指定要使用的Dockerfile路径 |
| --label=[] | 设置镜像使用的元数据 |
| --no-cache | 创建镜像的过程不使用缓存 |
| --pull | 尝试去更新镜像的版本 |
| --quiet,-q | 安静模式,成功只输出镜像ID |
| --tag,-t | 镜像的名字及标签,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个标签 |
| --network | 默认default,在构建期间设置RUN指令的网络模式 |

二.镜像仓库命令

1.docker login

登陆到一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。

语法:

复制代码
docker login [OPTIONS] [SERVER]

关键参数:
-u :登陆的用户名
-p :登陆的密码

2.docker pull

从镜像仓库中拉取或者更新指定镜像。

语法:

复制代码
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

关键参数:
-a :拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启

3.docker push

将本地的镜像上传到镜像仓库,要先登陆到镜像仓库。

语法:

复制代码
docker push [OPTIONS] NAME[:TAG]

关键参数:
-a :推送所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启

从 Docker Hub 查找镜像。

语法:

复制代码
docker search [OPTIONS] TERM

关键语法:
--no-trunc :显示完整的镜像描述;
-f <过滤条件>:列出收藏数不小于指定值的镜像

5.docker logout

登出一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。

语法:

复制代码
docker logout [SERVER]
相关推荐
engchina2 小时前
WSL Ubuntu で Kubernetes v1.34.2 + Docker 環境を構築する
ubuntu·docker·kubernetes
JH30732 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
Coder_Boy_3 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
invicinble3 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟4 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖4 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
qq_12498707535 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_5 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.5 小时前
Day06——权限认证-项目集成
java
瑶山5 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard