第一步:Xshell拉取镜像
既然是Docker,那我们就先拉取镜像。由于Docker国内被封的原因,所以这里我们只能通过配置第三方Docker镜像源 + Xshell的方式进行拉取。
可以按照我的镜像源进行配置操作
打开Xshell,进行拉取操作
在进行远程访问之前,请确保Nas开启了22端口的ssh。
1. 使用pull拉取Nginx
docker pull nginx
使用docker images 查看是否有 nginx 查看是否拉取成功
docker images
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
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
所以我们的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
创建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>
配置反向代理,实现访问Nas的域名 + 对应端口访问Nginx
注意:这里的HTTPS是要进行SSL证书的配置的。
接下来,我们直接访问 nas.xxx.com:8080 端口,看是否能访问到我们的Nginx.
注意:如果出现了403错误,给权限,给本地Nas权限!!!