idea docker打包springboot镜像自动推送服务器

1.修改宿主机的docker配置,让其可以远程访问,开放http可访问

ruby 复制代码
#1. 打开配置文件
vi /lib/systemd/system/docker.service 

#2. 在ExecStart=后添加配置 
‐H tcp://0.0.0.0:44888 ‐H unix:///var/run/docker.sock

例如完整替换:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:44888 -H unix
:///var/run/docker.sock

#3. 保存退出
**先退出编辑模式**:按一下键盘上的 `Esc` 键(左下角状态栏会从 `-- INSERT --` 变为空白或显示文件名)。
**保存并退出**:  
    输入 `:wq`(注意是英文冒号开头,`w` 表示保存,`q` 表示退出),然后按 `Enter` 键。
**如果不需要保存修改**:  
    输入 `:q!`(`!` 表示强制退出不保存),按 `Enter` 键。

#4. 通知docker服务做出的修改 
systemctl daemon-reload 

#5. 重启docker服务 
systemctl restart docker

#6.服务器开放端口

#7.接下来测试一下看是否能连接到docker api
浏览器访问
http://111.170.6.95:44888/version
输出:
{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"26.1.4","Details":{"ApiVersion":"1.45","Arch":"amd64","BuildTime":"2024-06-05T11:31:02.000000000+00:00","Experimental":"false","GitCommit":"de5c9cf","GoVersion":"go1.21.11","KernelVersion":"3.10.0-957.1.3.el7.x86_64","MinAPIVersion":"1.24","Os":"linux"}},{"Name":"containerd","Version":"1.6.33","Details":{"GitCommit":"d2d58213f83a351ca8f528a95fbd145f5654e957"}},{"Name":"runc","Version":"1.1.12","Details":{"GitCommit":"v1.1.12-0-g51d5e94"}},{"Name":"docker-init","Version":"0.19.0","Details":{"GitCommit":"de40ad0"}}],"Version":"26.1.4","ApiVersion":"1.45","MinAPIVersion":"1.24","GitCommit":"de5c9cf","GoVersion":"go1.21.11","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-957.1.3.el7.x86_64","BuildTime":"2024-06-05T11:31:02.000000000+00:00"}
则成功开放!

2.使用插件docker-maven-plugin

bash 复制代码
# 1.根目录新建docker文件夹放入Dockerfile文件  docker/Dockerfile
Dockerfile内容如下:

# 用 JDK 8 作为基础镜像(你是 JDK 1.8)
FROM openjdk:8-jdk-alpine

# 维护者信息(可选)
LABEL maintainer="597172583@qq.com"

# 把 jar 包复制到容器
COPY bootapi-0.0.1-BOOTAPI.jar bootapi.jar

# 暴露 Spring Boot 端口(根据你项目配置改)
EXPOSE 8800

# 启动命令
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/bootapi.jar", "--spring.profiles.active=prod"]


2. #pom.xml中导入docker-maven-plugin插件配置  ${project.basedir}指向Dockerfile文件路径

 <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker.plugin.version}</version>
                <configuration>
                    <dockerHost>http://111.170.6.95:2375</dockerHost>
                    <imageName>${project.name}</imageName>
                    <dockerDirectory>${project.basedir}/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            

3.idea 底部服务链接dicker http镜像端口

显示连接成功则可看到镜像

4.maven打包推送镜像

复制代码
idea执行命令
mvn docker:build -X

5.idea docker插件 运行项目docker容器

markdown 复制代码
可直接服务器启动
docker run -d -p 8899:8899 --name bootapi bootapi:latest

备注: **`-p 0.0.0.0:9900:8800`**
    -   **0.0.0.0** → 表示监听服务器上所有可用 IP(本地回环、本地局域网 IP、公网 IP 等)
    -   **9900** → 宿主机端口(外部访问时用这个)
    -   **8800** → 容器内部应用的端口(Docker 容器里的程序监听的端口)

    🔹 这样设置后,无论是:
  
    http://127.0.0.1:9900
    http://你的内网IP:9900
    http://你的公网IP:9900
  
    都可以访问。

-   **`--name bootapi`**  
    容器名字叫 `bootapi`。

-   **`-d`**  
    让容器在后台运行(detached mode),不占用你的终端窗口。

-   **`bootapi:latest`**  
    要运行的镜像名是 `bootapi`,标签是 `latest`。

1.更具镜像创建容器

2.创建映射端口号

3.添加运行容器配置

4.容器运行成功

相关推荐
周小码11 小时前
Go开发的自行托管代理加速服务:支持Docker与GitHub加速
docker·golang·github
川石课堂软件测试11 小时前
Oracle 数据库使用事务确保数据的安全
数据库·python·功能测试·docker·oracle·单元测试·prometheus
奋斗的老史12 小时前
25年Docker镜像无法下载的四种对策
docker·容器·eureka
chillxiaohan12 小时前
Docker学习记录
学习·docker·容器
柯南二号12 小时前
【后端】Docker 常用命令详解
服务器·nginx·docker·容器
我今天指定是不行了14 小时前
Docker安装与部分应用安装
docker
streaker30315 小时前
Docker + Jenkins + Nginx 实现前端自动化构建与静态资源发布(含一键初始化脚本)
docker·jenkins
THMAIL16 小时前
机器学习从入门到精通 - Python环境搭建与Jupyter魔法:机器学习起航必备
linux·人工智能·python·算法·机器学习·docker·逻辑回归
13线18 小时前
Windows+Docker一键部署CozeStudio私有化,保姆级
docker·容器·开源
0wioiw018 小时前
Docker(②创造nginx容器)
docker·容器