Docker从入门到放弃-如何去创建一个Docker镜像
之前我们介绍关于Docker的简单使用,并且了解了通过Docker Hub来操作Docker镜像。也提到了,我们也可以创建好自己的Docker镜像然后上传到Docker Hub上来提供更多人的使用。那么下面我们就来看看如何去创建一个Docker镜像。
编写一个Dockerfile文件
Dockerfile文件是Docker镜像的设置文件,其中包括了用来创建镜像的各种执行脚本。这里我们先来创建一个用来测试的目录
mkdir example
cd example
创建好目录之后我们在对应的目录下创建一个Dockerfile的文件,文件内容如下。
FROM ubuntu:14.04
MAINTAINER Foo Bar <foo@bar.com>
RUN apt-get update
RUN apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/lib/nginx
VOLUME ["/data","/etc/nginx/site-enabled","/var/log/nginx"]
WORKDIR /etc/nginx
CMD["nginx"]
EXPOSE 80
EXPOSE 443
以上这段脚本用来创建了一个Ubuntu14.04的镜像,并且在这个镜像中安装了一个Nginx的服务器。
- FROM:是用来指定了镜像的基础镜像,因为Docker镜像的创建是基于一个基础镜像来创建。
- MAINTAINER:维护者的信息
- RUN:运行Shell脚本或者命令
- CMD:指定容器启动时候运行的文件或者是Shell脚本
- WORKDIR:为CMD中设置可执行文件的目录
- EXPOSE:与主机相连的端口号
使用Build命令来创建镜像
在编写好Dockerfile的文件之后,可以在对应的example目录中执行build命令来编译镜像
docker build --tag hello:0.1
这里使用tag选项设置镜像的名称和标签,如果只是单纯的生成了镜像,那么标签就会设置为latest,执行命令完成之后,就生成了对应的镜像。
我们可以通过如下的命令运行来验证镜像运行情况
docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1
运行成功之后可以采用docker ps,命令来查看对应容器镜像的运行情况。