一.Dockerfile常用命令

Docker(三)Dockerfile命令及springboot项目构建

 

Docker(三)Dockerfile命令及springboot项目构建

 Docker(三)Dockerfile命令及springboot项目构建

Docker(三)Dockerfile命令及springboot项目构建

Docker(三)Dockerfile命令及springboot项目构建

Docker(三)Dockerfile命令及springboot项目构建

 Docker(三)Dockerfile命令及springboot项目构建

 

 

Docker(三)Dockerfile命令及springboot项目构建

二.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上。

Docker(三)Dockerfile命令及springboot项目构建

 

 *Dockerfile最好新建一个新文件夹,不要放在根目录下,构建镜像的时候会把Dockerfile目录的所有下级目录上传,会很慢

3.构建镜像

 docker build -t  refund06  .        --refund06  是构建的镜像名称   不要忘记后面.  这个.代表当前目录

Docker(三)Dockerfile命令及springboot项目构建

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

Docker(三)Dockerfile命令及springboot项目构建

 

相关文章:

  • 2022-12-23
  • 2022-02-23
  • 2022-01-22
  • 2022-12-23
  • 2021-06-19
  • 2022-12-23
  • 2021-04-21
  • 2022-12-23
猜你喜欢
  • 2021-05-24
  • 2021-12-26
  • 2022-12-23
  • 2022-12-23
  • 2021-06-19
  • 2021-09-03
  • 2021-10-02
相关资源
相似解决方案