第一个Dockerfile
1、 创建docker目录
$ mkdir docker && cd docker
2、 编写Dockerfile
$ vim Dockerfile
[docker/Dockfile]
FROM ubuntu:16.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
上述代码基于ubuntu 14.04创建Docker镜像,且安装nginx服务器。
* FROM:指定基于的基础镜像。Docker镜像基于已创建的镜像。指令格式为<镜像名称>:<标签>。
* MAITAINER:维护者信息
* RUN:运行shell脚本或命令
* VOLUME:要与主机共享的目录。也可以在docker run命令中使用 -v 选项进行设置。例如,-v /root/data:/data将主机的/root/data目录连接到Docker窗口的/data目录。
* CMD:指定容器启动时执行的文件或者shell脚本。
* WORKDIR:为CMD中设置的可执行文件设置运行目录
* EXPOSE:与主机相连的端口号
3、 使用build命令创建镜像
$ docker build - -tag hello:0.1 . $ docker images
4、 运行刚刚创建的镜像
$ docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1 $ docker ps
* -d选项在后台运行容器。
* -p 80:80选项将主机的80端口与容器的端口连接起来,并暴露到外部。这样设置后,连接http://<主机名>:80就会连接到容器的80端口了。
* -v /root/data:/data选项将主机的/root/data:/data选项将主机的/root/data目录连接到容器的/data目录。若将文件放入/root/data目录,则能从容器读取相应文件。
5、 访问nginx服务器:http://<主机IP>:80,打开后即可出现 welcome to nginx 页面。