1. 程式人生 > 其它 >idea 一鍵將spring boot 打包部署到docker並執行

idea 一鍵將spring boot 打包部署到docker並執行

環境

Linux:Vmware 16.1 + Ubuntu 20.4
docker:20.10
java:jdk8 + mvn 3.8 + idea 2021.2

1.在linux中安裝docker

參考docker官方教程

1.1解除安裝舊版本

$ sudo apt-get remove docker docker-engine docker.io containerd runc

1.2更新apt包索引並安裝包以允許apt通過 HTTPS 使用儲存庫:

$ sudo apt-get update
$ sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg \
      lsb-release

1.3 安裝最新版本的Docker Engine和containerd

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

1.4 檢視docker版本

$ docker -v

這裡應該會報錯說許可權不夠使用 sudo docker -v 可以,但是以後使用會很麻煩,就需要將當前使用者新增到docker組中就可以了

$ sudo groupadd docker #新增docker使用者組
$ sudo gpasswd -a $USER docker #將登陸使用者加入到docker使用者組中
$ newgrp docker #更新使用者組

2.配置docker遠端埠

2.1 修改docker配置檔案

修改/usr/lib/systemd/system/docker.service檔案在 ExecStart=/usr/bin/dockerd 後新增 -H tcp://0.0.0.0:2375
修改前:

修改後:

2.2 配置完成後,儲存,然後重啟 Docker

$ systemctl daemon-reload
$ service docker restart

3.IDEA中docker配置

如下圖將Linux的IP地址和剛配置的遠端埠配置好,看到連結成功的字樣就可以裡

如果此處不行需要檢視防火牆是否開放了此埠,我這裡直接關閉了防火牆。

$ sudo ufw disable # 關閉防火牆
$ sudo ufw status # 檢視防火牆狀態

4.建立springboot專案這裡不在多說,然後就是建立Dockerfile檔案

#使用jdk8作為基礎映象
FROM java:8
#指定作者
MAINTAINER Lee
#暴漏容器的8080埠 -P 是用
#EXPOSE 8080
#將複製target檔案中的jar為容器中的test.jar,相當於拷貝到容器中取了個別名
ADD target/*.jar /test.jar
#建立一個新的容器並在新的容器中執行命令
RUN bash -c 'touch /test.jar'
#設定時區 根據情況看是否需要
#ENV TZ=PRC
#RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#相當於在容器中用cmd命令執行jar包  指定外部配置檔案
ENTRYPOINT ["java","-jar","/test.jar"]

5. 配置dockerfile



埠繫結相當於docker run -p 的作用將容器的埠對映到主機不然會拒絕連結。

執行前要選擇新增maven,是執行前打包專案,不然每次執行都需要手動打包非常麻煩。



然後執行這個docker就可以看到下圖:

可以看到映象docker-demo:v1.0.0已經在Linux的映象倉庫中了,容器docker-test也已經運行了。


這樣就可以了。