IDEA中經過docker插件部署springboot項目

docker 相關部分

windows 系統

安裝/升級Docker客戶端

對於Windows 10專業版如下的用戶,推薦使用Docker Toolboxjava

Windows安裝文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/linux

對於Windows 10專業版以上的用戶 推薦使用Docker for Windowsweb

Windows安裝文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/spring

配置鏡像加速器

針對安裝了Docker Toolbox的用戶,您能夠參考如下配置步驟:docker

建立一臺安裝有Docker環境的Linux虛擬機,指定機器名稱爲default,同時配置Docker加速器地址。json

docker-machine create --engine-registry-mirror=https://*****.mirror.aliyuncs.com -d virtualbox default

查看機器的環境配置,並配置到本地,並經過Docker客戶端訪問Docker服務。vim

docker-machine env default
eval "$(docker-machine env default)"
docker info

針對安裝了Docker for Windows的用戶,您能夠參考如下配置步驟:windows

在系統右下角托盤圖標內右鍵菜單選擇 Settings,打開配置窗口後左側導航菜單選擇 Docker Daemon。編輯窗口內的JSON串,填寫下方加速器地址:springboot

{
  "registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
}

8.png

編輯完成後點擊 Apply 保存按鈕,等待Docker重啓並應用配置的鏡像加速器。注意Docker for WindowsDocker Toolbox互不兼容,若是同時安裝二者的話,須要使用hyperv的參數啓動。網絡

docker-machine create --engine-registry-mirror=https://*****.mirror.aliyuncs.com -d hyperv default

Docker for Windows 有兩種運行模式,一種運行Windows相關容器,一種運行傳統的Linux容器。同一時間只能選擇一種模式運行。

配置遠程訪問

打開docker的設置界面,找到General,在裏面找到Expose daemon on tcp://localhost:2375 without TLS選項,打上勾,便可進行本地或遠程API調用。

1.png

linux 系統

安裝/升級Docker客戶端

更新apt軟件包索引。

sudo apt-get update

安裝最新版本的Docker CE,或者轉到下一步安裝特定版本:

sudo apt-get install docker-ce

配置鏡像加速器

您能夠經過修改daemon配置文件/etc/docker/daemon.json來使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json

在文件中加入如下內容便可:

{
  "registry-mirrors": ["https://********.mirror.aliyuncs.com"]
}

從新啓動

sudo systemctl daemon-reload
sudo systemctl restart docker

配置遠程訪問

編輯docker服務配置文件

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

找到以下配置

ExecStart=/usr/bin/dockerd

修改成

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

9.png

重啓docker網絡

sudo systemctl daemon-reload

重啓docker服務

sudo systemctl restart docker

測試

curl http://localhost:2375/verion

10.png

鏡像加速地址,能夠是阿里雲的,這裏以阿里云爲例:

2.png

IntelliJ IDEA 相關

配置idea鏈接docker服務

安裝idea的docker插件

setting中安裝docker插件

3.png

等待安裝完成重啓idea

配置鏈接

重啓完成後,咱們打開settings能夠看到docker

4.png

點擊+,添加一個鏈接。

5.png

咱們經過tcp的方式鏈接到linux或者windowsdocker服務。信息配置好後,idea會自動檢測。而後會輸出connection successful

而後再工具欄選擇docker的窗口,點擊運行

6.png

接下來咱們在idea上面操做docker

7.png

項目相關

首先新建一個簡單的springboot項目 在項目的pom.xml文件中加入如下代碼:

<!--複製jar包到指定目錄-->
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <id>gen-webadmin</id>
            <phase>package</phase>
            <configuration>
                <tasks>
                    <copy todir="docker" file="target/${project.artifactId}-${project.version}.${project.packaging}" />
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

17.png

在項目根目錄下創建一個docker文件夾,在docker文件夾下新建一個Dockerfile文件,寫入一下內容:

FROM java:8u111

VOLUME /tmp

ADD *.jar app.jar

EXPOSE 80

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

# Ubuntu 時區
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

11.png

而後配置docker啓動項 選擇編輯:

12.png

添加一個啓動項:

13.png

填寫docker相關的參數:

14.png

在執行docker鏡像以前須要把項目進行打包,因此在最下面的操做欄中加入maven打包相關的命令:

添加一個maven任務:

15.png

添加maven打包命令:

16.png

maven打包分爲了幾步: 第一步是清除上次編譯或者打包的文件

18.png

第二步是對項目進行編譯以及打成jar

19.png

第三步則是把打包好的jar文件移動到指定的docker文件夾,這樣咱們的docker對製做鏡像時才能找到咱們的jar文件,不然則會在製做過程當中報錯。

20.png

正常狀況:

Deploying 'signin Dockerfile: docker/Dockerfile'...
Building image...
Step 1/6 : FROM java:8u111
 ---> d23bdf5b1b1b
Step 2/6 : VOLUME /tmp
 ---> Using cache
 ---> fca4a788f895
Step 3/6 : ADD *.jar app.jar
 ---> a7d47f6bf6ec
Step 4/6 : EXPOSE 80
 ---> Running in 7b57f4915a64
Removing intermediate container 7b57f4915a64
 ---> 8a893ebb3052
Step 5/6 : ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar", "--Dspring.config.location=application.yml"]
 ---> Running in 26ae8f5e5310
Removing intermediate container 26ae8f5e5310
 ---> 28cc02929af7
Step 6/6 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 ---> Running in c0a1b980f7ca
Removing intermediate container c0a1b980f7ca
 ---> 22034793c303
Successfully built 22034793c303
Successfully tagged signin:latest
Creating container...
Container Id: 0cefcdae23b548d1cdc6865b31f4f4c841de3bed1e6667e64b6583be0b00fd22
Container name: 'signin'
Attaching to container 'signin'...
Starting container 'signin'
'signin Dockerfile: docker/Dockerfile' has been deployed successfully.

異常狀況:

Deploying 'signin Dockerfile: docker/Dockerfile'...
Building image...
Step 1/6 : FROM java:8u111
 ---> d23bdf5b1b1b
Step 2/6 : VOLUME /tmp
 ---> Using cache
 ---> fca4a788f895
Step 3/6 : ADD *.jar app.jar
Error: ResponseItem.ErrorDetail[code=<null>,message=ADD failed: no source files were specified]
Failed to deploy 'signin Dockerfile: docker/Dockerfile': ADD failed: no source files were specified

docker啓動完成

22.png

咱們去linux上面查看一下:

docker ps -a

23.png

相關文章
相關標籤/搜索