一.下載docker(mac版本)
https://hub.docker.com/editions/community/docker-ce-desktop-mac

image.png
然后像其他第三方軟件一樣進行安裝,mac下基本不會遇到什么問題。
二.用idea建立一個springboot的工程(叫做dockerdemo)
1.controller層代碼
@RestController
public class TestController {
@GetMapping
public String hello(){
return "hello,docker";
}
}
2.pom.xml加入代碼
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration>
<!-- 這里是最終生成的docker鏡像名稱 -->
<imageName>${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<!-- 基礎鏡像,運行一個springboot應用只需要基礎的java環(huán)境就行 -->
<baseImage>java:8</baseImage>
<!-- docker啟動的時候執(zhí)行的命令 -->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
3.在src/main下新建docker目錄,在該目錄下建立Dockerfile文件,添加代碼如下:
FROM java:8
EXPOSE 8080
VOLUME /tmp
ADD dockerdemo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
其中dockerdemo-0.0.1-SNAPSHOT.jar是該springboot項目生成的jar包名字(可自行修改)
4.項目目錄結構

image.png
三.創(chuàng)建并運行鏡像
1.使用maven構建鏡像(如果沒有安裝maven請自行安裝)
先使用cd命令定位到自己的springboot項目目錄下,然后使用以下命令構建鏡像文件
mvn package docker:build
2.查看構建出來的鏡像
docker images

image.png
3.運行
docker run -d -p 8080:8080 dockerdemo
測試如下,成功?。?!

image.png
四.上傳鏡像到hub上
1.創(chuàng)建repository
在dockerhub上先要有一個賬號,登錄后最右邊點那個Create Repository,
然后自己隨便取一個名字,然后點擊創(chuàng)建,就可以了,我取得是springboot
2.上傳容器
①使用命令查看正在運行的容器,并獲取到CONTAINER ID
docker ps

image.png
②然后commit一個容器 命令:
docker commit 4e4b0910c308 ns3652/springboot
其中4e4b0910c308是CONTAINER ID,ns3652是我的hub賬號,springboot是剛剛我在hub上建立的名字。
③登錄自己的hub帳號 命令:
docker login
④將剛才的鏡像push 到你的hub 那里去,命令如下:
docker push ns3652/springboot:latest
其中ns3652是我的賬號,springboot是在hub建立的repository的名字,latest就是創(chuàng)建鏡像時的tag
⑤可以使用命令驗證一下
docker inspect ns3652/springboot
其中ns3652是我的賬號,springboot是在hub建立的repository的名字
⑥去hub上檢查一下是否成功

image.png
上傳已經成功!?。?/p>
五.可以使用命令docker pull來拉取hub上的鏡像到本地
docker pull ns3652/springboot:latest