說明:我的編譯器是IDEA,操作系統是MacOS,所有的代碼文章中都有,建議自己動手收穫更多~
1、去springboot官網下載一個springboot項目(網址:https://start.spring.io/)
2、修改pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.docker.example</groupId>
<artifactId>demo</artifactId>
<version>docker</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3、配置application.properties文件
server.servlet.context-path=/test
4、編寫自己的controller層
package com.docker.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Star
* @date 2020-05-09 18:28
*/
@RestController
public class DockerTestController {
@GetMapping("/docker")
public String dockerTest() {
return "hello docker hhh";
}
}
此時的項目結構爲:(完整代碼已上傳至下載中心)
5、啓動項目
6、在瀏覽器上輸入http://localhost:8080/test/docker
7、使用maven進行打包
打包完成
8、查看jar包
9、把jar包放在固定的目錄下,我的目錄:/Users/xxx/Documents/lh/test/docker-demo
在當前目錄下創建Dockerfile文件,文件內容如下
#獲取base image
FROM adoptopenjdk/openjdk8:latest
#類似於執行 linux指令
RUN mkdir /opt/app
#類似於linux copy指令
COPY demo-docker.jar /opt/app/
#對外端口
EXPOSE 8080
#執行命令 java -jar /opt/app/demo-docker.jar
CMD ["java", "-jar", "/opt/app/demo-docker.jar"]
現在的目錄效果:
$ ls
Dockerfile demo-docker.jar
10、創建Docker鏡像
//命令
sudo docker build -t docker-demo .
執行過程需要輸入本機密碼,輸入完之後回車,等候創建鏡像成功
$ sudo docker build -t docker-demo .
Password:
Sending build context to Docker daemon 16.73MB
Step 1/5 : FROM adoptopenjdk/openjdk8:latest
latest: Pulling from adoptopenjdk/openjdk8
23884877105a: Pull complete
bc38caa0f5b9: Pull complete
2910811b6c42: Pull complete
36505266dcc6: Pull complete
3f0363b162ad: Pull complete
fe6480de91bf: Pull complete
Digest: sha256:66ca40f1847332a69624a5ed7444a51b522a6b7f2c6a984e6e33a9fbda1d0a50
Status: Downloaded newer image for adoptopenjdk/openjdk8:latest
---> 8d67cae7475e
Step 2/5 : RUN mkdir /opt/app
---> Running in c4de657f3bb3
Removing intermediate container c4de657f3bb3
---> d5b4d7fbf1d0
Step 3/5 : COPY demo-docker.jar /opt/app/
---> ca0bb0740376
Step 4/5 : EXPOSE 8080
---> Running in 788543ac21d6
Removing intermediate container 788543ac21d6
---> 12c5e03f6ddc
Step 5/5 : CMD ["java", "-jar", "/opt/app/demo-docker.jar"]
---> Running in a01e141a6b94
Removing intermediate container a01e141a6b94
---> 68d212d909bb
Successfully built 68d212d909bb
Successfully tagged docker-demo:latest
11、查看當前鏡像
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-demo latest 68d212d909bb 8 minutes ago 317MB
adoptopenjdk/openjdk8 latest 8d67cae7475e 2 days ago 300MB
hello-world latest bf756fb1ae65 4 months ago 13.3kB
我們創建的鏡像已經有了,名字就是docker-demo
12、使用鏡像生成容器
$ docker run -it -p 8080:8080 docker-demo
部署成功
13、瀏覽器驗證,出現下圖就證明成功了
14、control+c停止到,使用命令使其在後臺運行
$ docker run -d -it -p 8080:8080 docker-demo
b5290835e86a666ad8f60b102eacb74a3e2115a39e52bf6c7c41616678eb14da
15、查看當前運行的容器
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5290835e86a docker-demo "java -jar /opt/app/…" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp inspiring_heisenberg
16、進入容器
$ docker exec -it b5290835e86a /bin/bash
此時出現的效果如下圖
這樣就相當於我們進入容器裏了,在最開始我們創建Dockerfile時拷貝過來的jar包
17、使用Docker應用查看日誌
選擇第一個,查看日誌
18、謝謝博主,參考文檔:https://www.jianshu.com/p/d998dc9d9685