当前位置: 首页 > news >正文

石家庄行业网站深圳建筑工地招工招聘信息

石家庄行业网站,深圳建筑工地招工招聘信息,姜堰做网站,usp理论案例100例Linux 下 Docker 容器部署指南(Java Redis 示例)一、Docker 镜像源配置二、构建 Docker 镜像三、运行 Docker 容器四、查看容器日志五、实践思考与扩展在 Linux 上部署 Java 应用到 Docker 容器中,并访问宿主机的 Redis 服务,是一…

Linux 下 Docker 容器部署指南(Java + Redis 示例)

  • 一、Docker 镜像源配置
  • 二、构建 Docker 镜像
  • 三、运行 Docker 容器
  • 四、查看容器日志
  • 五、实践思考与扩展

在 Linux 上部署 Java 应用到 Docker 容器中,并访问宿主机的 Redis 服务,是一个常见场景。本文将结合实际操作步骤,详细讲解 Docker 镜像配置、镜像构建、容器启动及宿主机 Redis 访问问题的解决方案。

一、Docker 镜像源配置

国内访问 Docker Hub 较慢,建议配置国内镜像源来加速镜像下载。编辑 Docker 配置文件 /etc/docker/daemon.json:

{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn/docker/","https://docker.m.daocloud.io"]
}

配置完成后,执行以下命令重新加载配置并重启 Docker 服务:

systemctl daemon-reload
systemctl restart docker

⚠️ 注意:修改镜像源后,最好先执行 docker info | grep -i mirror,确认镜像源已生效。

二、构建 Docker 镜像

在项目根目录下,创建 Dockerfile,例如:

# 使用官方OpenJDK 8运行时作为父镜像(Alpine Linux版本非常小巧)
FROM openjdk:8-jdk-alpine# 在镜像内设置一个工作目录,后续的命令都会在这个目录下执行
WORKDIR /app# 将当前目录下的jar文件复制到镜像的工作目录中,并可重命名
COPY sd-api-assistant-1.0.0-SNAPSHOT.jar /app/sd-api-assistant.jar# 告诉Docker容器在运行时监听指定的端口(根据你的应用实际端口修改)
EXPOSE 9799# 配置容器启动后执行的命令
ENTRYPOINT ["java", "-jar", "sd-api-assistant.jar"]

然后执行构建命令:

docker build -t sd-api-assistant:1.0.0 .

构建完成后,你可以通过 docker images 查看本地镜像列表。

(base) [root@localhost aiyunhua_api]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED             SIZE
sd-api-assistant                1.0.0     0ed1e0438307   26 minutes ago      557MB

三、运行 Docker 容器

  1. 普通启动

如果应用不需要访问宿主机服务,直接运行:

docker run -p 9799:9799 --name aiyunhua-container sd-api-assistant:1.0.0
  1. 访问宿主机 Redis 服务

在容器里访问宿主机的 Redis,需要注意:

容器里的 127.0.0.1 只指容器本身,不能直接访问宿主机

Linux Docker 没有默认的 host.docker.internal,需要手动添加

运行容器时,添加 --add-host 参数:

docker run \--add-host=host.docker.internal:host-gateway \-d \-p 9799:9799 \--name aiyunhua-container \sd-api-assistant:1.0.0

在 Java 项目的 application.yml 中配置 Redis:

spring:redis:host: host.docker.internalport: 6379
  1. 查看运行中的容器
(base) [root@localhost aiyunhua_api]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                       NAMES
d6a5704734c2   sd-api-assistant:1.0.0   "java -jar sd-api-as…"   22 minutes ago   Up 22 minutes   0.0.0.0:9799->9799/tcp, :::9799->9799/tcp   aiyunhua-container

🔑 注意事项:

  • 宿主机 Redis 必须监听所有网卡:bind 0.0.0.0
  • 确保防火墙放行 6379 端口:
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
  • Redis 默认可能开启 protected-mode yes,需要设置 protected-mode no 以允许外部访问(请确保在安全网络环境下使用)。

四、查看容器日志

容器启动后,可以通过日志监控应用运行状态:

docker logs -f aiyunhua-container

五、实践思考与扩展

  1. 宿主机服务访问问题
  • Windows / Mac Docker Desktop 默认支持 host.docker.internal
  • Linux 需要手动添加 --add-host 或直接使用宿主机 IP
  1. Docker Compose 使用场景
  • 如果有多个服务(Java 应用 + Redis + MySQL 等),推荐使用 docker-compose.yml 管理网络和依赖关系
  • 通过 extra_hosts 可以统一配置宿主机访问
  1. 安全性
  • 容器访问宿主机服务时要确保防火墙和网络安全
  • 对外开放 Redis 端口时,建议设置密码或仅在内网使用
  1. 镜像优化
  • 使用轻量级基础镜像(如 Alpine)可减小镜像体积
  • 将 jar 包及依赖分层 COPY,可减少构建时间
http://www.dtcms.com/a/585849.html

相关文章:

  • 云溪网络建站宝盒wordpress发文章套模版
  • 人在虚弱的时候真的能看到鬼
  • zabbix原生高可用集群应用实战
  • flink1.20.2环境部署和实验-1
  • 网站主目录程序开发步骤不包括
  • 云手机技术是如何实现的?
  • 现有rest api转换为MCP工具 存量api改造为MCP Server
  • MyBatis:性能优化实战 - 从 SQL 优化到索引设计
  • 【Golang】常见数据结构原理剖析
  • 做百度推广得用网站是吗做小说网站做国外域名还是国内的好处
  • Ubuntu 复制王者:rsync -av 终极指南 —— 进度可视化 + 无损同步,效率甩 cp 几条街!
  • ubuntu磁盘管理、磁盘扩容
  • 专业设计网站排名百达翡丽手表网站
  • 广度优先搜索
  • 高端网站建设公司名称动物自己做的网站
  • 编译OpenCV
  • jQuery Mobile 事件详解
  • 网站换模板影响国家域名注册中心
  • 佛山的网站建设公司凡科建站微信小程序
  • 建设部网站网上大厅长沙景点免费
  • 不练不熟,不写就忘 之 compose 之 动画之 animateSizeAsState动画练习
  • 函数模板和类模板
  • 从 0 到 1:我的 C++ 游戏开发全记录
  • 手机屏幕表面缺陷检测分割系统1:数据集说明(含下载链接)
  • 【MyBatis】 吃透 MyBatis:多表查询、SQL 注入防护(#{} vs ${})与连接池优化
  • 智能体AI的六大核心设计模式
  • 基于SLERP(Spherical Linear Interpolation) 进行旋转滤波
  • 站长工具seo查询5g5g成都市四方建设工程监理有限公司网站
  • 网站建设百科深圳网站建设公司fantodo
  • 接口自动化详细介绍