第一步:Xshell拉取镜像

既然是Docker,那我们就先拉取镜像。由于Docker国内被封的原因,所以这里我们只能通过配置第三方Docker镜像源 + Xshell的方式进行拉取。

可以按照我的镜像源进行配置操作

Docker配置.png

打开Xshell,进行拉取操作

在进行远程访问之前,请确保Nas开启了22端口的ssh。

确保开启22端口.png

1. 使用pull拉取Nginx

docker pull nginx

Docker拉取Nginx.png

  • 使用docker images 查看是否有 nginx 查看是否拉取成功

docker images

Nginx拉取成功.png

2. 接下来,需要进行运行配置。

  • 端口映射:将 本地端口(Nas端口8077) 映射到 Nginx的端口(Docker内部端口,默认Nginx是80

  • 数据持久化:将 本地文件 (Nas内的)映射到 Nginx的对应文件,这样才会不丢失

  • 以下是Nginx中,需要持久化的文件路径

  • 网页目录:/usr/share/nginx/html

  • Nginx配置文件:/etc/nginx/nginx.conf

  • Nginx日志文件:/var/log/nginx

注意!!!!一定要给权限,不然就等着403吧!!!

chmod -R 777 n/root/nginx

在Nas中创建文件夹,用于将Docker文件中的文件进行持久化。

mkdir -p nginx # 创建Nginx目录
mkdir html # 创建html目录 --对应-- /usr/share/nginx/html
mkdir logs # 创建log日志目录 --对应-- /var/log/nginx
mkdir config # 创建配置文件目录 --对应-- /etc/nginx/nginx.conf
# 目录结构如下
/root/nginx
/root/nginx/html
/root/nginx/logs
/root/nginx/config

复制Nginx的config,html,logs到本地.png

3. 拷贝原config到本地

由于 Docker 的卷挂载会将本地同步到容器内,如果本地啥也没有那容器内本来有的将会被覆盖,所以我们需要先将容器内的复制出来。到我们的/root/nginx/config下

# 先运行,再拷贝
docker run -d --name nginx-test -p 3000:80 nginx
# 使用cp命令进行拷贝
docker cp nginx-test:/etc/nginx/nginx.conf ./config/
  • 命令解释

  • -d :后台运行。

  • --name:定义容器名字为 nginx-test。

  • -p:端口映射,由于这个容器只是为了备份,所以随便写一个端口(3000)。

  • 最后的nginx 是镜像名。

Nginx的备份.png

复制容器内的nginx的配置文件.png

创建外部访问的Nginx

映射关系/位置

本地(Nas)

容器(Docker)

端口映射

8077

80

html目录映射

/root/nginx/html

/usr/share/nginx/html

日志目录映射

/root/nginx/logs

/var/log/nginx

配置文件映射

/root/nginx/config/nginx.conf

/etc/nginx/nginx.conf

所以我们的Docker命令应该这么写!

docker run -d -p 8077:80 --name nginx-client -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/logs:/var/log/nginx -v /root/nginx/config/nginx.conf:/etc/nginx/nginx.conf nginx 

Docker创建Nginx并挂载.png

创建HTML页面,可以在cp那一步,把默认html也复制过来

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello World</title>
</head>
<body>
<h1>Hello Nginx!!!</h1>
<hr/>
</body>
</html>

创建index页面.png

配置反向代理,实现访问Nas的域名 + 对应端口访问Nginx

反向代理.png

注意:这里的HTTPS是要进行SSL证书的配置的。

接下来,我们直接访问 nas.xxx.com:8080 端口,看是否能访问到我们的Nginx.

注意:如果出现了403错误,给权限,给本地Nas权限!!!

Nginx页面展示.png

忽有故人心上过,回首山河已是秋