IDEA使用Docker打包部署SpringBoot项目(含CentOS7安装Docker)

前言:本文为原创 若有错误欢迎评论!

一.Docker

1.安装:

  1. docker安装(含常用命令):https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY

  2. 更改镜像仓库地址

    1. 方式一:docker官方国内镜像:
      https://blog.csdn.net/qq_39940205/article/details/81269784
    2. 方式二:阿里云加速(推荐)
      https://cr.console.aliyun.com/cn-shanghai/instances/mirrors
  3. 运行报错:
    https://blog.csdn.net/liqun_super/article/details/88304094

2.常用命令:

  • 运行Docker守护进程:

systemctl start docker

  • 停止Docker守护进程

systemctl stop docker

  • 重启Docker守护进程

systemctl restart docker

  • 搜索镜像

docker search 镜像名

  • 拉取镜像

docker pull 景象名

  • 删除镜像

docker rmi 镜像id

  • 删除容器

docker rm 容器id

  • 显示所有镜像

docker images

  • 显示所有容器

docker ps -a

  • 显示正在运行的容器

docker ps

  • 运行镜像 生成容器

docker run -d --name 启动后的名字 -p 实际端口:docker端口 镜像名

  • 启动容器(如果在run时配置有名字)

docker start 容器名

停止容器(如果在run时配置有名字)

docker stop 容器名

  • 打印docker的日志

docker logs -f

3.上传镜像到云服务器(步骤):
https://cr.console.aliyun.com/cn-hangzhou/instances/repositories)

二.用IDEA给Docker部署项目

1.配置linux
(参考https://blog.csdn.net/bobozai86/article/details/88875784)

  • 编辑 vi /lib/systemd/system/docker.service

    #修改ExecStart这行
    增加:  -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock
    

    IDEA使用Docker打包部署SpringBoot项目(含CentOS7安装Docker)_第1张图片

  • 重新启动

    #重新加载配置文件
    [root@izwz9eftauv7x69f5jvi96z docker]# systemctl daemon-reload    
    #重启服务
    [root@izwz9eftauv7x69f5jvi96z docker]# systemctl restart docker.service 
    #直接curl看是否生效
    [root@izwz9eftauv7x69f5jvi96z docker]# curl http://127.0.0.1:2375/info
    

2.配置pom文件

  • properties
    	
    		1.8
    	
    
  • plugin
    		
                org.springframework.boot
                spring-boot-maven-plugin
            		
            
    		
                com.spotify
                docker-maven-plugin
                1.0.0
                
                    
                    yzx/${project.artifactId}
                    
                    
                        1.0
                    
                    
                    ${project.basedir}
                    
                    http://xxx.xxx.xxx.xxx:2375
                    
                    
                        
                            /
                            
                            ${project.build.directory}
                            
                            ${project.build.finalName}.jar
                        
                    
                    
                    docker-hub
                    https://index.docker.io/v1
                
            
    

3.执行 mvn package

  • 如果是spring cloud项目 还要给给配置中心 网关 其他服务(即除注册中心外其他组件)配置文件加:
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
       #因为在生产环境部署后 除了注册中心 其他组件都是通过配置的名字去找对应的组件的时候 但名字默认是一串英文字符 如果跨机器就会报错
      instance:
        instance-id: ${spring.cloud.client.ip-address}:${server.port}
        prefer-ip-address: true
    
  • 注意:生产环境不能用localhost 或者 127.0.0.1, 一定要用内网通信ip

4.在项目根路径下(和pom文件同级)创建Dockerfile:

# From java image, version : 8
FROM java:8

#挂载app目录
#VOLUME /app

#将maven构建好的jar添加到镜像中 
#accout-mange-1.0-SNAPSHOT 是我的target下生成的jar包名,acc是添加的镜像中的名字(注意这个名字不是镜像显示的名字 而是用做下面ENTRYPOINT指定执行命令的名字)
ADD target/accout-mange-1.0-SNAPSHOT.jar acc.jar

#服务的端口
EXPOSE 8080

#acc是上面ADD添加的镜像名
ENTRYPOINT ["java", "-jar", "acc.jar"]

5.执行docker插件的 docker:bulid , 镜像已经成功上传到docker

你可能感兴趣的:(微服务相关)