本文介绍如何在调试代码过程中使用docker镜像来提升效率。
使用Docker构建静态网站
1.创建Dockerfile
创建一个空白的Dockerfile
$ mkdir sample
$ cd sample/
$ touch Dockerfile
2.获取nginx的配置文件
$ cd sample
$ mkdir nginx
$ cd nginx/
$ wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/sample/nginx/global.conf
$ ls global.conf
或则创建一个global.conf文件,并输入如下内容:
server {
listen 0.0.0.0:80;
server_name _;
root /var/www/html/website;
index index.html index.htm;
access_log /var/log/nginx/default_access.log;
error_log /var/log/nginx/default_error.log;
}
3.在Dockerfile中加入以下内容
FROM ubuntu:14.04
MAINTAINER James Turnbull "james@example.com"
ENV REFRESHED_AT 2014-06-01
RUN apt-get update
RUN apt-get -y -q install nginx
RUN mkdir -p /var/www/html
ADD nginx/global.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
在nginx目录下创建nginx.conf文件,并输入如下内容:
user www-data;
worker_processes 4;
pid /run/nginx.pid;
daemon off;
events { }
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
}
4.构建镜像
$ docker build ./ -t="hover/nginx:v0.1"
5.构建成功后启动容器:挂载网站页面
在本地$PWD/website目录中创建一个index.html文件,该文件的内容如下:
<head>
<title>Test website</title>
</head>
<body>
<h1>Hello! This is a test website</h1>
</body>
然后,通过-v来挂载本地网站页面,这样页面内容变化时,启动容器时就可以自动加载了。
$ docker run -d -p 80 --name website -v $PWD/website:/var/www/html/website hover/nginx:v0.1 nginx
查看一下容器运行的信息:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ccf10361951 hover/nginx:v0.1 "nginx" 5 minutes ago Up 5 minutes 0.0.0.0:55908->80/tcp website
现在可以在浏览器中流量以下网页内容了,在浏览器中输入: localhost:55908。可以看到index.html网页中的内容了。
由于我们是通过-v参数加载本地目录到容器的/var/www/html/website目录,我们修改一下本地文件index.html的内容,修改后,就即时生效了,这为本地的开发和调试提供了方便。
到此为止,我们的静态网站通过docker就可以来进行调试了。
|