一、安裝Docker
Docker的安裝請參考 https://blog.csdn.net/kevinyankai/article/details/80227364,具體步驟這裏就略過
我的系統是CentOS 7,安裝了寶塔7.0.2。
- Docker版本
- 查看下Docker的宿主機IP地址
- 開啓Docker的遠程訪問
執行如下命令:
sudo vi /lib/systemd/system/docker.service
修改以ExecStart開頭的內容如下圖紅框內所示
這裏我將端口號設置爲2375。然後重啓docker服務 :
systemctl daemon-reload
service docker restart
在寶塔安全設置中開啓2375端口
然後測試是否可以連接到docker api
如果是在CentOS 7下遠程連接有問題,可以嘗試如下配置:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
二、IntelliJ IDEA中安裝Docker integration插件
我的IDEA版本爲2019.2
- 安裝插件
在IDEA中打開File -> Settings...菜單,在插件市場中搜索Docker插件,並安裝
- 配置連接Docker服務端
其中Engine API URL處的地址爲Docker服務端的IP地址,也就是前面執行ifconfig時顯示的IP地址。
連接成功,如下所示
三、項目配置
- 創建Dockerfile
在項目的bin目錄下創建docker目錄,並創建Dockerfile文件,內容如下:
FROM frolvlad/alpine-java:jdk8-slim
#FROM frolvlad/alpine-oraclejdk8-slim
MAINTAINER [email protected]
ENV TZ "Asia/Shanghai"
ENV LANG C.UTF-8
VOLUME /tmp
WORKDIR /app
ADD target/web.war .
RUN jar -xvf web.war
# RUN chmod -R 755 ./*
ADD bin/docker/application-prod.yml ./classes/config
ENV JAVA_OPTS "-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"
ENV JAVA_OPTS "$JAVA_OPTS -Dspring.profiles.active=prod"
ENTRYPOINT java -cp /app $JAVA_OPTS org.springframework.boot.loader.WarLauncher
EXPOSE 8980
在項目bin目錄下創建applicatoin-prod.yml SpringBoot項目配置文件,具體內容根據項目不同自行設置,如配置實際的數據庫地址等。
- 創建運行/調試的配置項
具體配置內容如下:
Server: 選擇前面配置的Docker服務端連接
Dockerfile: Dockerfile文件所在位置
Context folder: 執行Dockerfile文件時的上下文環境。這個路徑一定要注意,寫錯了會導致執行Dockerfile錯誤,比如會找不到要拷貝的文件等。
Image tag: 發佈到服務端後鏡像的標籤,可隨便填寫
Container name: 發佈後運行時docker容器的名字
Bind ports: 運行時綁定的端口號
四、發佈並運行項目
- 編譯項目
Build項目,在target目錄下生成web.war包
- 連接docker服務端
前面的docker服務器配置成功後,在service視圖中即可看到服務端列表,選擇要啓動的docker服務端,點擊綠色箭頭啓動
啓動成功後即可看見服務端的所有鏡像和容器
- 執行Dockerfile,發佈並運行項目
執行Docker啓動/調試配置項,開始執行Dockerfile,創建鏡像,容器並運行容器
啓動成功後如下圖所示: