拉取镜像:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
- Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub。
- 仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
列出镜像
docker image ls
镜像体积:
Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 docker image ls 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和
虚悬镜像
这个镜像既没有仓库名,也没有标签,均为
docker image ls -f dangling=true
虚悬镜像(dangling image)是可以随意删除的,可以用下面的命令删除
docker image prune
中间层镜像
为了加速镜像构建、重复利用资源,Docker 会利用 中间层镜像
显示包括中间层镜像在内的所有镜像
docker image ls -a
这样会看到很多无标签的镜像,与之前的虚悬镜像不同,这些无标签的镜像很多都是中间层镜像,是其它镜像所依赖的镜像。这些无标签镜像不应该删除,否则会导致上层镜像因为依赖丢失而出错。
列出部分镜像
docker image ls ubuntu
docker image ls ubuntu:18.04
docker image ls -f since=ubuntu:18.04
docker image ls -f before=ubuntu:18.04
列出的特定格式
只显示镜像id
docker image ls -q
可以根据这一方法删除本地所有虚悬镜像或者某一批镜像
删除ubuntu所有标签的镜像
docker image rm $(docker image ls -q ubuntu)
删除所有虚悬镜像
docker image rm $(docker image ls -q -f dangling=true)
Docker定制镜像(编写Dockerfile文件)
Dockerfile 中每一个指令都会建立一层
- FROM 指定基础镜像
- RUN 指令用来执行命令行命令
- shell 格式:RUN <命令>
- exec 格式:RUN ["可执行文件", "参数1", "参数2"]
镜像是有层数限制的所以尽量使用 && 将各个所需命令串联起来,像这种:
RUN apt-get update &&
apt-get -y install netcat &&
apt-get clean
本地导入导出镜像
导出镜像
sudo docker save -o 镜像的压缩包名 要导出的镜像名
导入镜像
docker load < 镜像压缩包名