Nginx是一款高性能的Web和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。在《Mac系统docker安装配置及基本使用》中已使用过nginx镜像创建docker容器,这里介绍如何通过nginx容器映射宿主机站点目录,从而实现网页浏览。
1 获取官方Nginx镜像
获取镜像命令如下,请在终端中执行
# 当前latest版本对应1.17.9版本
# docker pull nginx:1.17.9
docker pull nginx
2 创建本地目录
在~/docker/
目录下创建nginx
文件夹,然后在nginx
文件夹内创建以下目录
-
conf
:存放nginx配置 -
www
:存放nginx站点数据文件 -
log
:存放nginx运行日志
3 准备本地目录文件
3.1 nginx配置文件
先临时创建一个nginx容器,将容器内的nginx配置文件复制到本地,后面根据实际需要调整本地宿主机的配置文件,并将本地配置文件挂载到nginx容器内部,nginx容器内配置文件目录为/etc/nginx
。操作命令如下
# 创建临时容器
docker run --name tmpnginx -d nginx
# 复制容器内的配置文件目录到本地文件目录
docker cp tmpnginx:/etc/nginx ~/docker/nginx/conf
# 删除临时容器
docker rm -f tmpnginx
nginx配置文件复制到本地后做相应调整,假设本地的~/docker/nginx/www
目录内包含多个站点,目前只放一个站点site1
,nginx容器使用site1
。先备份默认的nginx配置文件~/docker/nginx/conf/conf.d/default.conf
为~/docker/nginx/conf/conf.d/default.conf.bak
,然后调整~/docker/nginx/conf/conf.d/default.conf
内容如下,使站点首页指向site1
站点内的index.html
页面:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/www/site1;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
3.2 站点静态文件
在~/docker/nginx/www
目录下放置site1
文件夹,文件夹内存放静态站点文件,文件内容可根据具体情况而定。
3.3 nginx文件目录结构
经过上面两个步骤,nginx文件夹下目录结构如下图
4 创建nginx容器
上一步骤中准备好所有文件后,创建正式的nginx容器,命令如下
# --name nginx 容器名称为nginx
# -v ~/docker/nginx/conf:/etc/nginx 挂载配置目录
# -v ~/docker/nginx/log:/var/log/nginx 挂载日志目录
# -v ~/docker/nginx/www:/usr/share/www 挂载站点目录
# -p 8880:80 本地8880端口映射容器内部的80端口
# -d 后台运行
docker run --name nginx -v ~/docker/nginx/conf:/etc/nginx -v ~/docker/nginx/log:/var/log/nginx -v ~/docker/nginx/www:/usr/share/www -p 8880:80 -d nginx
5 访问容器内站点
上一步骤中,宿主机的8880
端口映射到了nginx容器的80
端口,所以在宿主机使用8880
端口访问容器内网站。如下图
此时日志目录~/docker/nginx/log
下已有访问日志,如下图
参考
[1] 官方nginx容器镜像