1、从docker hub仓库下载一个镜像,并查看下载的镜像:
$ docker pull ubutun:12.04
$ docker images
2、使用该镜像创建一个容器,运行bash应用:
$ docker run -t -i ubuntu:12.04 /bin/bash
除了从仓库下载镜像,当然也可以自己在本地创建镜像,首先要学会修改镜像。
1.修改镜像
1、 用下载好的镜像启动容器
$ docker run –t –i ubuntu:12.04 /bin/bash
2、 在容器内进行操作,安装一些软件等等。
3、 退出已经被修改的容器,使用docker commit命令提交更新后的容器,从而修改镜像。
$ docker commit -m "instll gem" -a "docker newbee" ff693a0c8911 ubuntu:12.04
其中,-m指定提交的说明信息,-a指定更新的用户信息,随后的参数是所修改的容器的id,最后是镜像的仓库名和tag信息。创建成功后会返回新镜像的id:
注:在容器内操作时出现一些问题,gem install json一直报错。一般出现下图所示问题,都是由于源,apt-get update更新一下就好。
2.创建镜像
1、 创建一个目录,并进入
$ mkdir docker_lab
$ cd docker_lab
2、 创建Dockerfile,build操作会根据Dockerfile的内容执行
$ touch Dockerfile
Douckerfile内容如下:
# This is a comment
FROM ubuntu:14.04 #以该镜像作为基础
MAINTAINER Docker Newbee newbee@docker.com #维护者信息
RUN apt-get -qq update #RUN后面是需执行的命令
RUN apt-get install gem
3、 Dockerfile编写完成后开始创建镜像
$ docker build –t=”user/ubuntu:v2” .
其中-t用来指定仓库名称和tag,而“.”表明Dockerfile所在的目录。
4、 修改镜像tag
$ docker tag [镜像id] repository:tag
查看可以发现原tag和新tag都存在,其实这两个是同一个镜像,因为id是一样的。
3.存出和载入镜像
1、从本地系统导入镜像
$ cat openvswitch-2.3.0.tar.gz |docker import - ovs:230
$ docker images
2、上传镜像
$ docker login docker.io
$ docker tag local-image:tagname userfc/lab1:tagname
$ docker push userfc/lab1:tagname
上传未成功,可能由于被墙,具体原因有待定位。
4、 存出镜像
$ docker save -o ubuntu_12.04.tar ubuntu:12.04
5、载入镜像
$ docker load --input ubuntu_12.04.tar
5、 删除本地镜像
$ docker rm [与镜像相关的容器id]
$ docker rmi [镜像id]
如果不先删除与镜像相关的容器,则无法删除镜像。