一.下载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环境就行 -->
<baseImage>java:8</baseImage>
<!-- docker启动的时候执行的命令 -->
<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
三.创建并运行镜像
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.创建repository
在dockerhub上先要有一个账号,登录后最右边点那个Create Repository,
然后自己随便取一个名字,然后点击创建,就可以了,我取得是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就是创建镜像时的tag
⑤可以使用命令验证一下
docker inspect ns3652/springboot
其中ns3652是我的账号,springboot是在hub建立的repository的名字
⑥去hub上检查一下是否成功
image.png
上传已经成功!!!
五.可以使用命令docker pull来拉取hub上的镜像到本地
docker pull ns3652/springboot:latest










网友评论