Docker运行容器之前需要本地存在相应的镜像。镜像是容器的基础
获取镜像
docker pull NAME[:TAG]
如果不指定TAG,默认是latest
例如:docker pull ubuntu 和 docker pull ubuntu:latest是一样的
也可以指定仓库下载
docker pull dl.dockerpool.com:5000/ubuntu
查看本地镜像列表
docker images
REPOSITORY: 来自那个仓库
TAG: 标签
IMAGE ID:唯一标识
CREATED:创建时间
VIRTUAL SIZE:镜像大小
给镜像打标签
docker tag IMAGE newTag
如:
docker tag ubuntu:latest ubuntu:16.04
ubuntu:latest 和ubuntu:16.04是对应一个镜像,ImageId都是一样的
查看镜像的详细信息
docker inspect IMAGE
搜寻镜像
docker search [-s num] keyWord
例如:搜索和mysql相关的镜像,docker search mysql
如果只想搜索10颗星以上的镜像可用-s, docker search -s 10 mysql
删除镜像
docker rmi IMAGE
IMAGE可以是标签或者ID
如果一个镜像有多个标签,用标签删除只会删除这个标签,该镜像不会删除,当该镜像只有一个标签的时候,删除该标签,这个镜像也就被删除了。
用ID删除的话,会删除这个镜像的所有标签和该镜像。
docker rmi -f
如果该镜像还有容器存在,直接rmi会提示该镜像有容器还在使用该镜像不能删除,可用 -f 参数强制删除,但是不推荐这么做,因为往往会遗留很多问题。
创建镜像
创建镜像有三种方法:基于已有的镜像的容器创建,基于本地模板导入,基于Dockerfile创建
基于已有的镜像容器创建
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
就是基于已有的镜像启动了一个容器,对容器做了一些改动,比如装了jdk等等,想把这些改动保存下来,就是基于这个改动过的容器创建一个新的镜像。
基于本地模板导入
可以从网上下载操作系统模板文件,然后导入就可以了,下载地址https://openvz.org/Download/template/precreated
cat 模板文件 | docker import - REPOSITORY:TAG
镜像的导入和导出
镜像已经创建好了,那怎么导出呢?导出的镜像怎么导入?
导出
docker save
例如:docker save -o ubuntu_14.04.tar ubuntu:14.04
导入
docker load
例如:docker load –input ubuntu_14.04.tar 或者 docker load < ubuntu_14.04.tar
上传到仓库
docker push