docker:镜像的使用
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
列出镜像
# 列出本机所有的镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
这里比如 ubuntu 的 tag 有两个不一样的,所以运行的话用 :
区分docker run -t -i ubuntu:15.10 /bin/bash
查找镜像
方法一:
Docker Hub 网址为: https://hub.docker.com/
方法二:
docker search httpd
获取镜像
# 获取镜像
docker pull ubuntu:13.10
获取完就可以 docker run
这个镜像啦
删除镜像
docker rmi hello-world
创建镜像
方式一:从已经创建的容器中更新镜像,并且提交这个镜像
方式二:使用 Dockerfile 指令来创建一个新的镜像
方式一
首先使用 docker run
运行一个容器,然后更改这个容器,比如 nginx 容器更改一下配置。然后通过命令 docker commit
来提交容器副本
docker commit -m="has update" -a="runoob" e218edb10161 zy/nginx:v2
- -m: 提交的描述信息
- -a: 指定镜像作者
- e218edb10161:容器 ID
- zy/nginx:v2: 指定要创建的目标镜像名
使用 docker images
命令来查看我们的新镜像,查到就可以 docker run
运行啦。
方式二
使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
例如:某个 Dockerfile 文件
FROM centos:6.7
MAINTAINER Fisher "[email protected]"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
docker build -t runoob/centos:6.7 .
- -t :指定要创建的目标镜像名
- . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
使用docker images 查看创建的镜像已经在列表中存在
镜像加标签
docker tag 860c279d2fec zy/centos:dev
使用 docker images
可以看到多了个 dev 标签
上一篇: richfaces 使用问题集
下一篇: JavaWeb框架MVC设计思想详解