第一本Docker书(3)-使用Dockerfile构建镜像并使用Docker测试静态网站

网站测试的基本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)后,出现网址无法解析的问题,我索性:

  1. 将镜像中软件源更换掉,即更改文件/etc/apt/sources.list的内容,我将能用的sources.list(可以直接复制系统中该文件,但要注意Ubuntu版本应与镜像一直,否则还需修改)放入目录apt中,构建镜像时覆盖掉镜像中的该文件。
  2. 更改镜像的中DNS服务器,修改系统中/etc/default/docker文件,将DNS地址修改为能用的本地DNS服务器地址,下图中的114.114.114.114据说适合于国内移动、联通、电信网,注意更改后要重启docker服务。
修改/etc/default/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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一本Docker书 自动精简配置: thin-provisioning加载device-mapper模块sudo...
    崩芭大酱阅读 6,533评论 0 16
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,708评论 15 147
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 13,585评论 0 120
  • 时间过的飞快,如今的我23岁了,23岁的我还一事无成,23岁的我还什么都没有,还在苦苦煎熬着等待着一个机会,是用两...
    君叶9阅读 1,839评论 0 0
  • 文/晚晚 日子如流水不断,不论你想或不想,它都不会受你的意志驱使。直到现在,我发现自己有两样东西一直没有丢下:一是...
    米米的精神小屋阅读 2,773评论 0 5