网站测试的基本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/website
ADD nginx/global.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/
EXPOSE 80
这个文件内容就是:
- 安装Nginx
- 在容器中创建一个目录/var/www/html/website/
- 将Nginx配置文件复制到镜像中
- 公开镜像的80端口
配置文件可以从书籍的官网上获取,/var/www/html/website被配置为网络服务的根路径。
构建Nginx测试容器:
sudo docker run -d -p 80 --name website -v $PWD/website:/var/www/html/website jamtir01/nginx nginx
-v选项将宿主机的目录作为卷,挂载到容器里,index.html即保存在这个目录中。
在执行上述命令更新软件源时,可能速度超慢,毕竟用的国外的源地址,更换为国内镜像(如163,aliyun)后,出现网址无法解析的问题,我索性:
- 将镜像中软件源更换掉,即更改文件/etc/apt/sources.list的内容,我将能用的sources.list(可以直接复制系统中该文件,但要注意Ubuntu版本应与镜像一直,否则还需修改)放入目录apt中,构建镜像时覆盖掉镜像中的该文件。
- 更改镜像的中DNS服务器,修改系统中/etc/default/docker文件,将DNS地址修改为能用的本地DNS服务器地址,下图中的114.114.114.114据说适合于国内移动、联通、电信网,注意更改后要重启docker服务。
所以我的Dockerfile为:
FROM ubuntu:14.04
MAINTAINER James Turnbull "james@example.com"
ENV REFRESHED_AT 2014-06-01
RUN rm /etc/apt/sources.list
ADD apt/sources.list /etc/apt/
RUN apt-get update
RUN apt-get -y -q install nginx
RUN mkdir -p /var/www/html/website
ADD nginx/global.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/
EXPOSE 80
如此便可顺利更新软件源并安装Nginx。