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.容器运行成功

