【容器----Docker】idea将SpringBoot程序构建Docker镜像

1.首先开启docker的2375端口监听

vim /usr/lib/systemd/system/docker.service

增加配置

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

然后重新加载docker.server文件并重启docker服务

systemctl daemon-reload
systemctl restart docker

 

2.配置Dockerfile配置文件

在项目/src/main下增加docker目录,并在该目录下新增Dockerfile文件

内容如下

FROM java:8

MAINTAINER Sunny [email protected]

VOLUME /tmp

ADD application-server.jar app.jar

RUN bash -c 'touch /app.jar'

RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

EXPOSE 28011

ENTRYPOINT ["java", "-jar", "app.jar"]

注意:

  • VOLUME:指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录

 

pom.xml增加配置

            
            
                com.spotify
                docker-maven-plugin
                1.0.0
                
                
                    
                        build-image
                        
                        package
                        
                            build
                        
                    
                
                
                    
                    ${docker.registry}/${project.build.finalName}
                    
                    
                        ${project.version}
                    
                    
                    src/main/docker
                    
                    http://47.92.145.192:2375
                    
                        
                            /
                            
                            ${project.build.directory}
                            
                            ${project.build.finalName}.jar
                        
                    
                
            

注意:

  • imageName:如果要推送到私有镜像库,则前面要加上ip地址和端口
  • imageName:名称的格式只允许大小写字母、数字、以及中划线,否则报错InternalServerErrorException:http 500

 

3.执行maven clean package命令构建

 

package后docker就直接发布到了docker server上,使用命令

docker images

查看是否发布成功,然后通过docker push到私有镜像库即可

 

 

 

 

 

你可能感兴趣的:(容器-Docker)