参考书籍 :第一本docker书【澳】James Turnbull

 1.Sample网站的初始Dockerfile

文件目录如下:

Dockerfile文件代码:

  • 安装nginx
  • 在容器中创建一个目录 /var/www/html/website
  • 将本地的Nginx配置文件添加到镜像中
  • 公开镜像的80端口
FROM ubuntu:latest
MAINTAINER wzl "XXX@163.com"
ENV REFRESHED_AT 2019-12-08
RUN apt-get update && apt-get -yqq install nginx
RUN mkdir -p /var/www/html/website
ADD nginx/global.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

global.conf文件代码:

这个文件将Nginx设置为监听80端口,并将网络服务的根路径设置为 /var/www/html/website,这个目录是我们在Dockerfile中用run命令创建的。

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;
}

nginx.conf文件代码:

  daemon off;选项阻止Nginx进入后台,强制其在前台运行,这是因为要想保持Docker容器的活跃状态,需要其中运行的进程不能中断。默认情况下,Nginx会以守护进程的方式启动,这会导致容器只是短暂的运行,在守护进程被fork启动后,发起守护进程的原始进程就会退出,这是容器就停止运行。

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;
}

index.html文件代码:

<head>
<title>Test Wbesite</title>
</head>
<body>
<h1>This is a test website for wzl</h1>
</body>

2.构建Sample网站和Nginx镜像

$ cd sample
$ docker build -t wzl/nginx .

3.从Sample网站和Nginx镜像构建容器

-v : 将宿主机的目录作为卷,挂载到容器里。卷可以在容器间共享。即便容器停止,卷里的内容依旧存在。

$ docker run -d -p 80 --name website \
-v $PWD/website:/var/www/html/website \
wzl/nginx nginx

这时就可以通过docker ps -l 查询容器映射到宿主机器上的端口,就可以访问了。

[root@centos-2019-11-19 sample]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
62ae6538bc36 wzl/nginx "nginx" 4 days ago Up 4 days 0.0.0.0:32773->80/tcp website

访问http://<ip号>:32773即可

如果需要修改网页,只需要打开挂载目录即可,即 $PWD/website/ 下的文件

使用Docker测试静态网站的更多相关文章

  1. docker 学习(九) docker部署静态网站

    一:  dockerfile, 把Dockerfile和myfolder放在一个目录下: FROM httpd:2.4 COPY ./myfolder/ /usr/local/apache2/htdo ...

  2. 使用docker创建静态网站应用-多种方式

    能承载静态网站的服务器有很多,本文使用,nginx.apache.tomcat服务器演示docker静态网站应用设置 一,创建docker文件, 不同服务器的docker文件不一样,下面分别创建ngi ...

  3. docker (2)---存储、网络(利用docker容器上线静态网站)

    一.docker底层依赖的核心技术 1.命名空间 (Namespaces) 2.控制组 (Control Groups) 3.联合文件系统 (Union File System) 4.Linux 虚拟 ...

  4. docker容器中布置静态网站

    docker容器中布置静态网站(基于云服务器ubuntu系统) 服务器准备(ubuntu) docker nginx 静态网页制作 浏览器测试 服务器布置 这里推荐使用云服务器(阿里云.华为云.腾讯云 ...

  5. Docker 案例: 在容器中部署静态网站

    ----------------知识点------------ 容器的端口映射: docker  run  [-P] [-p] -P,–publish-all=true | false,大写的P表示为 ...

  6. Docker 在容器中部署静态网站

    Docker 在容器中部署静态网站 在容器中部署静态网站 设置容器的端口映射 run -P``--publish-all=true|false:容器暴露的所有端口进行映射 -p``--publish= ...

  7. Docker学习(5) 在docker中部署静态网站

    在容器中部署静态网站 设置容器的端口映射 在容器中部署静态网站  -  Nginx部署流程 1 创建映射80端口的交互式容器 2 安装Nginx 3 安装文本编辑器vim 4 创建静态页面 5 修改N ...

  8. 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用

    URLOS开发者功能已上线有一段时间了,目前通过部分开发者的使用体验来看,不得不说URLOS在服务器软件开发效率方面确实有着得天独厚的优势,凭借docker容器技术与其良好的应用生态环境,URLOS必 ...

  9. Gatsby上手指南 - 让你的静态网站用react来高逼格的写

    注意:Gatsby V2版本安装及使用问题请移步<Gastby V2安装过程中常见问题>,此文较旧,主要针对V1版Gatsby而介绍 前言 一直以来都是用之前比较流行的静态网站生成器Hex ...

随机推荐

  1. 大数据之路day04_2--经典bug(equals与==比较不同,break的跳出不同)

    一.equals与==比较不同 在实现某个人去5个商场去购物,控制台输入是否购物(Y/N)的时候,在比较出了问题,发现无论输入什么都是false,后来查阅资料发现,字符串的比较,==和equals不一 ...

  2. 期末考试(正解:三分单峰函数 me~)

    好久没有水过杂题了! 今天lsc终于刚过了三道考试题来水杂题了! 期末考试 首先一看还是一脸mb(这是正常现象,毕竟我不像一些大神可以一眼出正解)然后我就被颓了标签,知道是三分单峰函数,但是自己实在是 ...

  3. html5基本页面

    html5基本页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  4. linux 相关指令

    modinfo   *.ko     显示驱动文件的信息.

  5. 你知道如何优化Join语句吗?

    join语句的两种算法,分别是:NLJ和BNL 测试数据: create table t1(id int primary key, a int, b int, index(a)); create ta ...

  6. windows中修改IP映射的位置

    windows中修改IP映射的位置 置顶 2018年08月05日 14:42:44 wangxiaolong0 阅读数:1473   在安装linux之后,发现windows不能通过映射来访问linu ...

  7. element - ui tree

    一行代码两行泪,没有外网真可怕!好久没写博客了,更新一把. <template> <div> <el-tree :data="data" :props ...

  8. 虚幻4 UE4 蓝图之关卡蓝图实现自动开关门

    新建项目 往关卡中放置一个门 在内容浏览器中找到 门 的静态网格体 拖放到关卡中 此时门默认没有碰撞,人物可以直接穿过 给门添加碰撞 双击内容管理器中的 SM_Door,打开编辑窗口 选择菜单&quo ...

  9. nyoj 412 Same binary weight ()

    Same binary weight 时间限制:300 ms  |  内存限制:65535 KB 难度:3   描述 The binary weight of a positive  integer ...

  10. python高阶函数的使用

    目录 python高阶函数的使用 1.map 2.reduce 3.filter 4.sorted 5.小结 python高阶函数的使用 1.map Python内建了map()函数,map()函数接 ...