一.Dockerfile常用命令
二.Dockerfile构建sringboot项目并以非root用户运行镜像
1.编写Dockerfile文件
FROM openjdk:8
ARG USER_ID=140
ARG GROUP_ID=500
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&& echo "Asia/Shanghai" > /etc/timezone
RUN groupadd ftp
RUN useradd -d /home/newuser -g ftp ftp
RUN groupmod -g ${GROUP_ID} ftp
RUN usermod -u ${USER_ID} ftp
ADD wxrealtimerefund.jar /home/newuser/app.jar
RUN chmod 777 /home/newuser/app.jar
RUN mkdir -p /home/newuser/
RUN chown -R ftp:ftp /home/newuser/
VOLUME [/home/newuser]
WORKDIR /home/newuser
EXPOSE 8080
USER ftp
ENTRYPOINT ["java","-jar","/home/newuser/app.jar"]
2.将springboot项目打包成jar包,上传到linux上。
*Dockerfile最好新建一个新文件夹,不要放在根目录下,构建镜像的时候会把Dockerfile目录的所有下级目录上传,会很慢
3.构建镜像
docker build -t refund06 . --refund06 是构建的镜像名称 不要忘记后面. 这个.代表当前目录
4.运行镜像
docker run --name refund06 -p 8080:8080 -v /opt/project/online:/home/newuser/logs --add-host centos_1318:172.16.7.111 -d refund06
--add-host 向hosts文件添加域名映射
--name 给容器起个名字
-p 向外部暴露端口
-d 以守护进程运行
-v 将项目产生的日志目录挂载到宿主机目录,方便日志查看
*/opt/project/online这个目录提前在宿主机上创建并修改所有者和所属组,要不然镜像启动就会失败,报没有权限的错误
cd /opt/project
chown -R ftp:ftp online/
chmod 777 -R online/
5.通过docker ps 查看启动的容器