《Dokcer的使用》(四) 实战之Nginx+静态网站部署

1、下载Centos的基础镜像

     说明:基础镜像是所有自定义Dockerfile镜像必须引用的,一般基于centos、ubuntu等操作系统镜像

#docker pull下载centos的latest版本,也可指定版本docker pull centos:标签名
docker pull centos

2、创建Dockerfile构建目录及Dockerfile文件

#1、创建Dockerfile构建环境目录
mkdir static-website

#2、进入构建目录
cd static-website

#3、创建Dockerfile文件
touch Dockerfile

#4、编辑Dockerfile文件(第3步可忽略,也可直接vi Dockerfile 会自动创建好文件)
vi Dockerfile

3、配置Dockerfile文件内容如下:

#1、引入centos基础镜像
FROM centos:latest

#2、说明作者信息
MAINTAINER Luoy "luoy@163.com"

#3、设置环境变量,记录上次修改日期(根据自身情况,此步骤可忽略)
ENV UPDATE_DATE 2020-11-09

#4、下载安装nginx
RUN yum install -y nginx

#5、添加自定义的nginx配置文件到镜像中
ADD nginx/website.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/nginx.conf

#6、开放80端口
EXPOSE 80

4、Dockerfile配置完成后,接下来我们添加自定义的nginx配置文件:
     

配置文件分为website.conf与nginx.conf

 1、website.conf:用于静态网站相关配置。

 2、nginx.conf:nginx的主配置文件,这里主要是将nginx的运行模式(daemon off)改为前台运行,防止nginx以后台进程模式运行,导致容器停止运行。

4-1、当前static-website目录下创建nginx目录

#1、在当前Dockerfile的构建目录下创建nginx目录
mkdir nginx

4-2、配置website.conf内容如下

server{

 listen 0.0.0.0:80;
 server_name localhost; #也可配置为域名
 
 location /{
      root /home/static;
      index website/index.html;  
  }

  location /website{
      root /home/static;
      index index.html;  
  }

}

4-3、配置nginx.conf内容如下(此配置只是为了演示效果,主要在原始的nginx.conf文件里添加了daemon off 配置,其他配置未做更改)

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

#主要添加此配置 daemon off;
daemon off;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    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;

    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        include /etc/nginx/default.d/*.conf;
        location / {
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

5、构建镜像

#进入static-website目录,执行docker build
docker build -t="luoy/website:v1" .

6、等待构建成功

7、查看镜像:docker images 

8、启动镜像

#启动镜像
#-d 以守护进程模式运行该容器
#-v /home/static:/home/static 将宿主机静态网址目录映射到容器中,使容器可访问到公共的静态网址
#-p 80:80 将主机的80端口映射到容器的80端口
#luoy/website:v1 镜像用户名/仓库名:标签
#nginx 启动nginx
docker run -d -v /home/static:/home/static -p 80:80 luoy/website:v1 nginx

9、查看运行的容器:docker ps 

10、开放宿主机的80端口,使外网环境访问到静态网址

10-1、腾讯云服务器开放端口步骤:安全组-》入站规则-》添加80端口

10-2、私有服务器/本地服务器开放端口步骤:

#开放80端口
firewall-cmd --add-port=80/tcp --permanent 

#重启防火墙
systemctl restart firewalld

11、到此所有配置完成,通过浏览器访问nginx服务器IP或域名即可访问到静态网站

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值