为了服务器安全,nginx端口不直接暴漏在外,现在服务器使用了docker版nginx,记录下使用步骤,docker安装就不再叙述,之前有写
分为2种适用于服务器能上网和不能上网的情况
这里写的一个sh文件和dockerfile文件,用于docker启动后直接拉取线上仓库的nginx镜像
build_and_run.sh文件内容:
#!/bin/sh
echo "准备发布"
echo "\n"
echo "停掉旧容器..."
docker stop zw-nginx
echo "完成\n"
echo "删除旧容器..."
docker rm zw-nginx
echo "完成\n"
echo "删除旧镜像..."
docker image rm zw-nginx:latest
echo "完成\n"
echo "构建新镜像..."
docker build --rm -t zw-nginx:latest . -f nginx.dockerfile
echo "完成\n"
echo "启动新版本..."
docker run -d \
--name zw-nginx \
-p 443:443 \
-p 8889:8889 \
-v /home/www:/home/www \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
--restart=always zw-nginx:latest
echo "完成\n"
其中443,8889都为nginx启动后可监听端口
nginx.dockerfile文件内容:
from nginx:latest
MAINTAINER yushoji@gmail.com
ENV TZ=Asia/Shanghai \
DIR=/etc/nginx
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
&& echo $TZ > /etc/timezone
WORKDIR $DIR
CMD ["nginx", "-g", "daemon off;"]
能上网的服务器直接执行build文件即可自动向仓库拉取nginx
不能上网的服务器需要先提前导入nginx镜像,导入命令:sudo docker load < nginx_latest.tar
镜像生成步骤之前已有叙述。