【pull】命令获取镜像
docker [image] pull NAME[:TAG]
docker pull ubuntu:18.04
不指定tag则默认tag为latest,latest会跟踪最新版本更新,内容是不稳定的。为了稳定性,在生产环境中最好指定特定tag
默认使用官方docker hub库,省略镜像前仓库的前缀
实际上相当于
docker pull registry.hub.docker.com/ubuntu:18.04
从非官方库下载时需要指定前缀
比如从网易蜂巢的镜像源下载Ubuntu镜像
docker pull hub.c.163.com/public/ubuntu:18.04
镜像文件一般由若干层(layer)组成,不同镜像包括相同层时,本地仅存一份层的内容即可,每个层都有一个唯一的id,256bit
使用镜像。利用该镜像创建一个容器,在其中执行bash应用
docker run -it ubuntu:18.04 bash
查看镜像信息
使用【images】命令列出镜像
docker images
或者
docker image ls
更多子命令选项可以通过
man docker-images
查看
使用【tag】命令添加镜像标签
docker tag 原镜像标签 新镜像标签
docker tag ubuntu:latest myubuntu:latest
建立的新镜像标签与原镜像标签指向同一个镜像文件,image id相同
使用【inspect】命令查看镜像详细信息
docker [image] inspect ubuntu:18.04
上面返回的是json格式的信息,如果只需要某一内容时,可以使用-f指定
docker inspect -f {{".Architecture"}} ubuntu:18.04
【history】命令查看镜像历史
docker history ubuntu:18.04
【search】命令搜寻镜像
命令选项
-f 过滤输出内容
–format 格式化输出内容
docker search -f is-official=true nginx
docker search -f stars=4 tensorflow
删除和清理镜像
使用标签删除镜像
docker rmi myubuntu:18.04
或者
docker image rm myubuntu:18.04
命令选项
-f 强制删除
使用镜像id删除镜像
docker rmi 镜像id(通常取id前几位)
注意:镜像上有容器运行时(退出状态也是运行),不可直接删除镜像,可以加-f强制删除(不推荐),或先删除容器再删除镜像
docker rm 容器id
清理镜像
清理临时镜像文件和没有被使用的镜像
docker image prune
创建镜像
【commit】命令基于已有容器创建
- 创建新容器,对镜像进行修改操作
docker run -it ubuntu:18.04 /bin/bash
- 创建新镜像
docker commit -m "Added a new file" -a "Docker Newbee" 0fdfb7e...(容器id) test:0.1
- 查看新镜像
【import】命令基于本地模板导入
可以使用OpenVZ提供的模板来创建,或者其他已导出的镜像模板
例如下载了ubuntu:18.04的模板压缩包后使用import命令导入
cat ubuntu-18.04-x86_64-minimal.tar.gz | docker import - ubuntu:18.04
【build】命令基于Dockerfile创建
基于Dockerfile创建是最常见的方式,Dockerfile是一个文本文件
例子:基于debian:stretch-slim镜像安装python3环境
FROM debian:stretch-slim
LABEL version="1.0" maintainer="docker user <docker_user@github>"
RUN apt-get update && \
apt-get install -y python3 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
docker [image] build -t python:3
存出和导入镜像
【save】命令存出镜像
导出镜像到本地文件(压缩包)
docker save -o ubuntu _18.04.tar ubuntu:18.04
【load】命令载入镜像
docker load -i ubuntu _18.04.tar
或者
docker load < ubuntu _18.04.tar
【push】上传镜像
docker push ubuntu:18.04