開發環境
- IDEA:2020.3.2
- Docker:20.10.12
注意,如果沒有開啟Docker遠程連接,請先開啟Docker遠程連接。
1. 打開或新建一個Web項目
2. 安裝Docker插件
(1)選擇File
--> Settings
,打開設置窗體;
(2)在設置窗體,左側選擇Plugins
,搜索Docker
並安裝
(3) 在設置窗體,左側選擇Buidl,Execution,Deployment
-->Docker
,然后在右側新建一個Docker Server,並配置Engine API URL
為tcp://10.1.4.123:2375
(修改為自己Docker的IP和端口),如果配置正確,下面會提示Connection successful
3.創建控制器Controller
(一會兒測試用)
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello(){
return "Hello Docker!";
}
}
4.編寫Dockerfile文件
(1)在工程根目錄下新建一個文件,命名為Dockerfile
(2)編寫Dockerfile文件按
# 基礎鏡像,openjkd使用8版本
FROM openjdk:8
# 作者
MAINTAINER mayhot
# 系統編碼
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
# 聲明一個掛載點,容器內此路徑會對應宿主機的某個文件夾
VOLUME /tmp
# 應用構建成功后的jar文件被復制到鏡像內,名字也改成了app.jar
ADD target/demo-0.0.1-SNAPSHOT.jar app.jar
# 啟動容器時的進程
ENTRYPOINT ["java","-jar","/app.jar"]
# 暴露8080端口
EXPOSE 8080
注意:將上面Dockerfile文件的jar名稱,修改成你自己的
5. 添加Docker啟動項
(1)編輯啟動項配置
(2)添加Dockerfile啟動項
(3)修改Dockerfile屬性
修改基本信息
添加Run Maven Goal
輸入要執行的Maven命令clean package -U -DskipTests
,會在每次構建鏡像之前,將當前工程清理掉並重新編譯
6. 運行Dockerfile
如果構建日志,提示'docker-demo Dockerfile: Dockerfile' has been deployed successfully.
表示在Docker上部署鏡像成功,並啟動容器成功!
7. 查看鏡像和容器狀態
使用xshell登錄Docker服務,查看鏡像和容器狀態
(1)查看鏡像
[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-demo latest 39b9d578b981 9 minutes ago 544MB
openjdk 8 47482c603b2a 13 days ago 526MB
hello-world latest feb5d9fea6a5 4 months ago 13.3kB
(2)查看容器
[root@bogon ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea83565112a4 39b9d578b981 "java -jar /app.jar" 10 minutes ago Up 10 minutes 0.0.0.0:18080->8080/tcp, :::18080->8080/tcp docker-demo
8. 驗證
在瀏覽器中輸入http://10.1.4.123:18080/hello
(Docker服務器的地址和端口),返回了“Hello Docker!”,證明部署的應用在Docker容器中正常運行!