Docker学习笔记(三)Dockerfile命令及springboot项目构建

一.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 查看启动的容器

原文地址:https://www.cnblogs.com/wiliamzhao/p/13608302.html