【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 :忽略镜像的校验,默认开启
4.docker search
从 Docker Hub 查找镜像。
语法:
docker search [OPTIONS] TERM关键语法:
--no-trunc :显示完整的镜像描述;
-f <过滤条件>:列出收藏数不小于指定值的镜像
5.docker logout
登出一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。
语法:
docker logout [SERVER]