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或域名即可访问到静态网站