这几天老板让写一个后台对接前台实现智能分析的一个demo。用到了docker+nginx部署项目,在这里给大家分享一下本人的心得,刚开始接触,也是在探索阶段请大家指正。
docker pull nginx:1.17.6
创建外接目录:
mkdir -p /home/nginx/smart_police/{conf,conf.d,html,logs}
直接运行这一句:
docker run \
--name smart_tpolice \
-d -p 9521:80 \
-v /home/nginx/smart_police/html:/usr/share/nginx/html \
nginx:1.17.6
就可以启动一个docker,把项目放到html里面就可以运行了。
挂载配置文件:
一般情况下docker启动时进行配置,只要把配置文件的目录挂载出来就可以,简洁方便,但是nginx却是先加载一个主配置文件nginx.conf,在nginx.conf里再加载conf.d目录下的子配置文件(一般最少一个default.conf文件)。这比单独挂载一个目录麻烦了不少,但只要思路清晰,倒也不难。
1:从docker里面copy 配置信息 nginx.conf 和 default.conf 。c596a4279249 这个是容器ID(运行命令:docker ps可以查看)
docker cp c596a4279249:/etc/nginx/nginx.conf /home/nginx/smart_police/conf/nginx.conf
docker cp c596a4279249:/etc/nginx/conf.d/default.conf /home/nginx/smart_police/conf.d/default.conf
然后把上面那个删除了:docker stop smart_tpolice ;
docker rm smart_tpolice
重新跑一个nginx项目:
docker run \
--name nginx_smart_police \
-d -p 9521:80 \
-v /home/nginx/smart_police/html:/usr/share/nginx/html \
-v /home/nginx/smart_police/conf/nginx.conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /home/nginx/smart_police/conf.d:/etc/nginx/conf.d \
nginx:1.17.6
成功!

跑项目jar包:::: 在/usr/local/project/新建smart_police文件夹,新建Dockerfile文件
FROM openjdk:8-jdk-alpine
WORKDIR /usr/local/project/smart_police
ENV LANG en_US.UTF-8
RUN apk add --update --no-cache ttf-dejavu fontconfig && rm -rf /var/cache/apk/*
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} /huc-1.0-SNAPSHOT.jar
# RUN apk add tzdata && \
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
# echo "Asia/Shanghai" > /etc/timezone && \
# apk del tzdata && \
CMD ["java","-jar","huc-1.0-SNAPSHOT.jar
在当前文件夹下面运行命令建立镜像: docker build -t smart_police . --network=host
docker run -d --name smart_police -p 9520:9520 -v /usr/local/project/smart_police:/usr/local/project/smart_police -v /home/smart_police/logs:/home/smart_police/logs smart_police
运行成功~
