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