Springboot集成Docker并将镜像推送linux服务器

案例使用springboot项目,在IDEA 中集成Docker生成镜像,并将镜像发布到linux服务器

具体步骤如下:

1、Centos7安装Docker

更新系统的软件包列表

bash 复制代码
sudo yum update

安装Docker所需的软件包和依赖项:

bash 复制代码
sudo yum install docker

完成安装后,启动Docker服务。在终端中运行以下命令:

bash 复制代码
sudo service docker start

验证Docker是否成功安装。在终端中运行以下命令:

bash 复制代码
docker --version

linux查看docker运行状态:

bash 复制代码
systemctl status docker

2、Docker开启远程访问:

bash 复制代码
vim /lib/systemd/system/docker.service


重新加载配置

bash 复制代码
systemctl daemon-reload 
systemctl restart docker 

3、idea安装docker插件:


链接docker测试:

docker服务器地址ip+docker端口

若连接失败:

bash 复制代码
#查看防火墙状态
systemctl status firewalld
bash 复制代码
#添加2375端口
firewall-cmd --permanent --zone=public --add-port=2375/tcp
#防火墙重启
firewall-cmd --reload
#查看开放的端口
firewall-cmd --permanent --zone=public --list-ports
#====开启状态下不需要执行==========
#启动防火墙命令
systemctl start firewalld

防火墙配置后idea重新连接测试即可。

4、文件配置

pom.xml引入docker插件:

bash 复制代码
   <!-- docker插件配置 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.13</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--镜像名字-->
                    <repository>${project.artifactId}</repository>
                    <tag>${project.version}</tag>
                    <buildArgs>
                        <JAR_FILE>
                            ${project.build.finalName}.jar
                        </JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>

项目根目录下新建Dockerfile文件:

Dockerfile文件内容:

bash 复制代码
#基础镜像为java8
#FROM williamyeh/java8:latest
FROM java:8
#作者签名
MAINTAINER  "zxj"
WORKDIR /app/docker-demo
ARG JAR_FILE
# 删除之前的镜像文件
RUN rm -rf /app/docker-demo/eco*
#拷贝jar包,到容器内的指定位置
ADD ./target/eco-0.0.1-SNAPSHOT.jar  /app/docker-demo/eco-0.0.1-SNAPSHOT.jar
#容器对外映射端口,声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8082
#运行启动命令
#CMD ["java", "-jar","-Dfile.encoding=UTF-8","eco-0.0.1-SNAPSHOT.jar","--spring.profiles.active=dev"]
ENTRYPOINT ["java", "-jar","/app/docker-demo/eco-0.0.1-SNAPSHOT.jar"]

5、打包镜像并推送至docker服务器

bash 复制代码
idea执行mvn clean package docker:build


报错:

maven配置docker服务:

配置环境变量:

错误提示:

bash 复制代码
No plugin found for prefix 'docker' in the current project and in the plugin groups

需要在maven的conf/setting.xml中要加入:

bash 复制代码
<pluginGroups>  
    <pluginGroup>com.spotify</pluginGroup> 
</pluginGroups>

依然报错:

最后更换命令成功了:

bash 复制代码
mvn clean package dockerfile:build

6、运行镜像

查看镜像:

bash 复制代码
docker images


运行镜像

bash 复制代码
docker run -d -p 8082:8083 jingxiangname:0.0.1-SNAPSHOT

jingxiangname:0.0.1-SNAPSHOT参数为以下两个参数的值:

docker相关命令:

bash 复制代码
#启动docker
systemctl start docker

#停止docker
systemctl stop docker

#重启docker
systemctl restart docker

#查看docker状态
systemctl status docker

#开机启动
systemctl enable docker

#列出所有在运行的容器信息:
docker  ps

#删除镜像id或名字均可
docker rmi bf756fb1ae65

#批量删除关键字镜像,替换命令中的guanjianzi
docker rmi --force `docker images | grep guanjianzi| awk '{print $3}'`
相关推荐
傻傻虎虎11 分钟前
【Docker】常用帮忙、镜像、容器、其他命令合集(1)
运维·docker·容器
2301_7943339120 分钟前
Docker Compose 运行 Milvus (Mac) 并与 python 连接测试
macos·docker·milvus
三十_6 小时前
【Docker】学习 Docker 的过程中,我是这样把镜像越做越小的
前端·后端·docker
Lin_Aries_04217 小时前
使用阿里云容器镜像服务 ACR
linux·阿里云·docker·云原生·centos·云计算
鳄鱼杆16 小时前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
逍遥浪子~17 小时前
docker实践(一)
运维·docker·容器
AI云原生18 小时前
如何使用Docker快速运行Firefox并实现远程访问本地火狐浏览器的教程
运维·docker·云原生·容器·serverless·firefox·kubeless
❀͜͡傀儡师19 小时前
Docker部署搜索引擎SearXNG
运维·docker·容器·searxng
虎头金猫20 小时前
如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
linux·运维·ubuntu·docker·pdf·开源·centos
janthinasnail1 天前
使用Docker搭建MaxKB智能体平台
docker·maxkb