【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]
相关推荐
悠悠海风2 小时前
解决docker配置了镜像源但还会拉取官方镜像源的问题
docker
一个帅气昵称啊2 小时前
Docker命令大全:从基础到高级实战指南
docker·容器·eureka·架构·.net
zhysunny2 小时前
51.不可变基础设施:云原生时代的「乐高城堡」建造法
java·云原生
*伤^情*2 小时前
docker教程
运维·docker·容器
无名客02 小时前
SQL语句执行时间太慢,有什么优化措施?以及衍生的相关问题
java·数据库·sql·sql语句优化
风槐啊2 小时前
邪修实战系列(3)
java·ide·spring boot·spring·tomcat
咋吃都不胖lyh2 小时前
SQL数据分析原代码--创建表与简单查询
java·数据库·sql
毕设源码-朱学姐2 小时前
【开题答辩全过程】以 _基于SpringBoot技术的“树洞”心理咨询服务平台的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
boonya2 小时前
Java内存模型与线程私有共享区域与直接内存的理解
java·开发语言·内存模型