Linux容器——Docker(三)之 SpringBoot部署
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地址)