当运行容器时,使用的镜像如果再本地中不存在,docker就会自动从docker 镜像仓库种下载,默认的是从Docker Hub公共镜像源下载,
列出镜像列表
docker images
选项说明
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像id
CREATED:镜像创建时间
SIZE:镜像大小
同一仓库可以有很多个TAG,代表整个仓库源的不同版本,比如ubuntu仓库源里,有15.10 ,14.04 等多个不同的版本,我是使用 REPOSITORY:TAG 来定义不同的镜像
docker run -t -i ubuntu:15.10 /bin/bash
docker run -t -i ubuntu:14.04 /bin/bash
如果不指定一个镜像的版本标签,将默认使用latest(最新)版本的镜像
获取新的镜像
当我们再主机使用一个不存在的镜像时,docker会自动下载这个镜像,如果我们想预先下载这个镜像,我们可以使用命令 docker pull 下载
docker pull training/webapp 或者 docker pull ubuntu:13.10
查找镜像
我们可以在 Docker Hub 网站来搜索镜像, 网址
我们也可以使用 docker search 命令来搜索镜像,比如搜索一个 httpd 的镜像来作为web服务,我们可以通过命令来寻找适合我们的镜像,
docker search httpd
选项说明:
NAME:镜像仓库源的名称
DESCRIPTION:镜像的描述
stars:类似点赞的意思
OFFICIAL:是否是docker官方发布
AUTOMATED:自动构建
拉取镜像
在决定使用上图中的httpd官方版本的镜像后,使用 docker pull 命令下载镜像
docker pull httpd
删除镜像
镜像删除使用 docker rmi 命令
docker rmi hello-world
创建镜像
当我们从docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改,
1, 从已经创建的容器中更新镜像,并且提交这个镜像
2, 使用Dockerfile指令来创建一个新的镜像
更新镜像
更新镜像之前,我们需要使用镜像来创建一个容器
docker run -t -i ubuntu:15.10 /bin/bash
在运行的容器内使用 apt-get update命令来进行更新
在完成后输入exit,退出容器,
此时这个容器就是按照我们的需求更改的容器,我们通过命令 docker commit 来提交容器副本
docker commit -m=”has update” -a=”runoob” e218edb10161 runoob/ubuntu:v2
参数解释
-m:提交的描述信息
-a:指定镜像作者
e218edb10161 :容器id
runoob/ubuntu:v2:指定要创建的目标镜像名
此时可以使用 docker images 命令来查看我们的新镜像
我们还可以使用新镜像 runoob/ubuntu:v2: 来启动一个容器
构建镜像
可以使用命令 docker build 从零开始来创建一个新的镜像,为此,我们需要创建一个Dockerfile文件,其中包含一组指令来告诉docker如何构建我们的镜像
太麻烦了,看不懂
设置镜像标签
我们可以使用 docker tag 命令为镜像添加一个新的标签
docker tag 860c279d2fec runoob/centos:dev
docker tag 镜像id 用户名/镜像源名:新的标签名
这样会同一个镜像id下,多了一个新的dev标签