镜像常用操作命令
拉取镜像
可以使用 docker pull 命令来从仓库获取所需要的镜像。
$ sudo docker pull debian
该命令默认拉取的是Docker Hub镜像仓库上的镜像,实际上相当于 $ sudo docker pull registry.hub.docker.com/debian:latest 命令,即从注册服 务器 registry.hub.docker.com 中的 debian 仓库来下载标记为 latest(最新的) 的镜像。
如果要从私有镜像仓库镜像拉取镜像,只要填上自已仓库地址即可,如: $sudo docker pull myregistry.com/debian:latest。
列出本地镜像
使用 docker images 显示本地已有的镜像。
运行镜像
- 先使用下载的镜像启动容器
$ sudo docker run -t -i debian/latest /bin/bash
使用Docker commit创建镜像
- 容器里安装软件
$apt-install curl
使用docker commit 命令来提交更新后的副本.
$ sudo docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8(container_id) ouruser/sinatra:v
其中, -m 来指定提交的说明信息,跟我们使用的版本控制工具一样; -a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。
这时候查查本地镜像docker image, 可以看到多了刚生成的镜像了。
使用Dockerfile来创建镜像
使用 docker commit 来扩展一个镜像比较简单,但是不方便在一个团队中分享。我们可以使用 docker build 来创建一个新的镜像。为此,首先需要创建一个 Dockerfile,包含一些如何创建镜像的指令。
新建一个目录和一个Dockerfile:
# This is a comment
FROM node:latest
MAINTAINER allen.hu <[email protected]>
RUN apt-get -qq curl
RUN apt-get -qq babe-cli
编写完成 Dockerfile 后可以使用 docker build 来生成镜像。
$ sudo docker build -t "hujb2000/node:v2" .
其中 -t 标记来添加 tag,指定新的镜像的用户信息。 “.” 是 Dockerfile 所在的路径(当前目录),也可以 替换为一个具体的 Dockerfile 的路径。
Dockfile 中的指令被一条一条的执行。每一步都创建了一个新的容器,在 容器中执行指令并提交修改(就跟之前介绍过的 docker commit 一样)。当所有的指令都执行完毕之 后,返回了最终的镜像 id。所有的中间步骤所产生的容器都被删除和清理了。
上传镜像
用户可以通过 docker push 命令,把自己创建的镜像上传到仓库中来共享。例如,用户在 Docker Hub 上 完成注册后,可以推送自己的镜像到仓库中。
$sudo docker push hujb2000/node:v2, 该命令提交镜像到Docker Hub上了,相当于 $sudo docker push registry.hub.docker.com/hujb2000/node:v2
你也可以通过以下命令上传镜像到自己的仓库: $sudo docker push myregistry.com/node:v2
删除本地镜你
docker rmi
删除所以标识为"
*注意:在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器。