1.拉取鏡像
a.拉取Java8鏡像
#拉取Java8鏡像 $ docker pull openjdk:8
b.拉取Mysql鏡像
#拉取Mysql鏡像 $ docker pull mysql:8.0.18
c.查看鏡像是否拉取成功
# 列出本機的所有 image 文件。 $ docker images
2.配置共享文件夾
a.參考:https://www.cnblogs.com/vettel0329/p/12167031.html
3.啟動Mysql容器
a.參考:https://www.cnblogs.com/vettel0329/p/12167031.html
4.創建SpringBoot工程
a.參考:https://www.cnblogs.com/vettel0329/p/12038468.html
5.方式一:掛載部署jar包(推薦)
a.使用Maven打包工程為Jar包,並將打好的Jar包放到共享文件夾 D:\dockermnt\jar 中,每次只用替換Jar包再重啟容器即可。
b.執行命令啟動Java容器
#啟動容器,並執行jar包 $ docker run --name springboot-mybatisplus -p 8081:8081 -v /dockermnt/jar:/usr/src/myapp -d openjdk:8 java -jar /usr/src/myapp/springboot-mybatisplus-0.0.1-SNAPSHOT.jar
·-p 8081:8081:將容器的8081端口映射到主機的8081端口
·-v /dockermnt/jar:/usr/src/myapp:將主機/dockermnt/jar目錄(windows為共享文件夾下路徑,即"/dockermnt"對應"D:\dockermnt")掛載到容器的/usr/src/myapp
·java -jar /usr/src/myapp/springboot-mybatisplus-0.0.1-SNAPSHOT.jar:Java啟動命令,運行Jar包
c.訪問 http://192.168.99.100:8081 測試(注意IP地址為docker-machine分配的IP地址)
6.方式二:Dockerfile構建Docker鏡像
a.使用Maven打包工程為Jar包
b.創建Dockerfile文件
# 基礎鏡像使用java FROM openjdk:8 # 作者 MAINTAINER zwin # VOLUME 指定了臨時文件目錄為/tmp。 # 其效果是在主機 /var/lib/docker 目錄下創建了一個臨時文件,並鏈接到容器的/tmp VOLUME /tmp # 將jar包添加到容器中並更名為app.jar ADD springboot-mybatisplus-0.0.1-SNAPSHOT.jar app.jar # 運行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
c.將 Dockerfile 文件和打好的 Jar 放在同一文件夾下,並在當前目錄運行CMD
docker build -t zwin/springbootmybatisplus .
·-t zwin/springbootmybatisplus:設置鏡像的名字及標簽,通常 name:tag 或者 name 格式
·注意最后有個"."!
d.在Docker命令行查看鏡像是否構建成功
# 列出本機的所有 image 文件。 $ docker images
e.使用鏡像啟動容器
#根據鏡像啟動容器 $ docker run --name springboot-mybatisplus -d -p 8081:8081 zwin/springbootmybatisplus
f.訪問 http://192.168.99.100:8081 測試(注意IP地址為docker-machine分配的IP地址)
7.方式三:Maven構建Docker鏡像
a.在 resources 目錄下創建 Dockerfile
# 基礎鏡像使用java FROM openjdk:8 # 作者 MAINTAINER zwin # VOLUME 指定了臨時文件目錄為/tmp。 # 其效果是在主機 /var/lib/docker 目錄下創建了一個臨時文件,並鏈接到容器的/tmp VOLUME /tmp # 將jar包添加到容器中並更名為app.jar ADD springboot-mybatisplus-0.0.1-SNAPSHOT.jar app.jar # 運行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
b.在 pom 文件中加入 docker 插件依賴
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- docker插件 --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!-- docker服務器地址 --> <!-- <dockerHost>http://localhost:2375</dockerHost> --> <!--鏡像名稱以及版本號--> <imageName>zwin/springbootmybatisplus:1.0.0</imageName> <!--依賴的基礎鏡像--> <baseImage>openjdk:8</baseImage> <!--Dockerfile的位置 --> <dockerDirectory>${project.build.outputDirectory}</dockerDirectory> <!-- 這里是復制 jar 包到 docker 容器指定目錄配置 --> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
c.使用Maven打包工程為Jar包,並執行Maven命令構建Docker鏡像
mvn docker:build
d.在Docker命令行查看鏡像是否構建成功
# 列出本機的所有 image 文件。 $ docker images
e.使用鏡像啟動容器
#根據鏡像啟動容器 $ docker run --name springboot-mybatisplus -d -p 8081:8081 zwin/springbootmybatisplus:1.0.0
f.訪問 http://192.168.99.100:8081 測試(注意IP地址為docker-machine分配的IP地址)