SpringBoot使用docker实现项目部署

将SpringBoot项目打成jar包

一、创建一个SpringBoot项目

二、在porm.xml里面添加配置

    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.0.RELEASE
         
    

    org.lym
    mock
    1.0-SNAPSHOT
    
        1.8
    
    
     
    
        docker-jar 
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

    

        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

三、使用maven打包。进入项目的主目录下(和porm.xml同级),使用mvn clean package -Dmaven.test.skip=true(-Dmaven.test.skip=true是为了排除项目中的test包) 打包项目,最终jar会放在target文件夹下。

安装docker

一、使用国内的daocloud一键安装docker

curl -sSL https://get.daocloud.io/docker | sh

如果报“Delta RPMs disabled because /usr/bin/applydeltarpm not installed.”错误,执行以下命令

yum provides '*/applydeltarpm' #查看依赖包的位置
yum -y install deltarpm #安装deltarpm

二、启动docker

systemctl start docker

三、检查docker是否安装成功

docker run hello-world

如果出现以下信息,表明docker安装成功


创建镜像

一、在服务器上建一个文件夹DockerFile,在文件夹下创建一个文件Dockerfile

mkdir DockerFile
touch Dockerfile

二、编辑Dockerfile文件

FROM java:8
VOLUME /tmp
COPY docker-jar.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar","--server.port=80","> /log/app.log"]

FROM:定制的镜像都是基于 FROM 的镜像,这里的java就是应用需要用到的java环境,版本号是8
VOLUME :声明容器中存储数据的目录(匿名卷),跟宿主机的某个目录绑定
COPY :复制docker-jar.jar到容器中并重新命名为app.jar
EXPOSE :暴露容器的端口(仅仅是声明,并不会实际绑定)
ENTRYPOINT :在启动容器的时候运行,这里用来启动springboot项目

三、构建镜像

将上面打的docker-java.jar包放到DockerFile目录下(和Dockerfile同一目录),并运行如下命令

docker build -t mock .

-t:指定镜像名称
.:当前目录
镜像构建完后,可以使用docker images 查看结果


四、启动容器

使用如下命令启动容器

docker run -d --name mock -P mock
或者
docker run -d --name mock -p 80:8080 mock

-d:默认不会进入容器,容器启动后会进入后台
-P:将容器内部使用的网络端口随机映射到我们使用的主机上
-p:将容器端口映射到指定的host端口上,这里是将8080端口映射到80端口上
--name:设置容器名称

如果上面的命令启动后,无法通过浏览器访问应用,尝试将newwork改成host

docker run -d --net="host" --name mock  mock

--net="host":此时容器使用宿主机的ip和端口

如果需要查看容器的日志,可以使用

docker logs -f mock

你可能感兴趣的:(SpringBoot使用docker实现项目部署)