前期准备
参考前期文章
部署docker私有镜像
修改docker.service内容如下
# 原文件
ExecStart=/usr/bin/dockerd
# 修改成如下
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
让Docker支持http上传镜像
# 注意替换成你的服务器IP
[root@k8s-master ~]$ echo '{ "insecure-registries":["http://10.8.135.104:5000"] }' > /etc/docker/daemon.json
# 使配置生效
[root@k8s-master ~]$ systemctl daemon-reload
# 重新启动Docker服务
[root@k8s-master ~]$ systemctl restart docker
# 开启防火墙的Docker构建端口
[root@k8s-master ~]$ firewall-cmd --zone=public --add-port=2375/tcp --permanent
[root@k8s-master ~]$ firewall-cmd --reload
打包成镜像
❝这里采用maven插件打包成镜像,上传到私有服务器
❞
maven 配置如下
<properties>
<docker.host>http://192.168.1.103:2375</docker.host>
<docker.maven.plugin.version>1.2.0</docker.maven.plugin.version>
</properties>
<build>
<finalName>k8s-owater</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.owater.kubedocker.KubedockerApplication</mainClass>
<executable>true</executable>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<imageName>k8s-owater/${project.artifactId}:${project.version}</imageName>
<dockerHost>${docker.host}</dockerHost>
<baseImage>java:8</baseImage>
<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>
${docker.host} 为镜像仓库 baseImage springboot项目需要依赖java镜像 entryPoint 镜像启动后执行的命令
进行maven package即可将打包好的镜像自动上传到指定的仓库,操作如下图:

检查镜像
看到BUILD SUCCESS,说明打包成功并且也上传成功了

# 查看镜像
[root@k8s-master ~]$ docker images

启动镜像
# 通过docker run方式启动镜像
[root@k8s-master ~]$ docker run -d -p 8080:8080 --name k8s-owater k8s-owater/kubedocker:0.0.1-SNAPSHOT
# 查看启动的容器
[root@k8s-master ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e04c642ad09 k8s-owater/kubedocker:0.0.1-SNAPSHOT "java -jar -Dspring.…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp k8s-owater
请求接口
通过postman请求接口