docker安装jenkins与docker 容器时区和时间同步问题

使用docker compose安装

yaml 复制代码
services:
  jenkins:
    image: jenkins/jenkins:lts-jdk11 # 使用 LTS 长期支持版
    container_name: jenkins
    restart: unless-stopped
    ports:
      - "7000:8080" # Web 访问端口
      - "7001:50000" # Agent 通信端口
    volumes:
      # 使用宿主机的localtime和timezone,后面的localtime:ro和timezone:ro表示只读模式
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./jenkins_data:/var/jenkins_home # 持久化数据卷
      - /var/run/docker.sock:/var/run/docker.sock # 允许容器内使用宿主机 Docker

    environment:
      - TZ=Asia/Shanghai # 设置时区
      - JAVA_OPTS=-Dhudson.model.UpdateCenter.updateCenterUrl=https://mirrors.huaweicloud.com/jenkins/updates/dynamic-stable-2.462.3/ -Duser.timezone=Asia/Shanghai -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai -Dhudson.model.DownloadService.noSignatureCheck=true

容器启动之后,容器内部的/etc/localtime和date -R可能不一致,此时应该以date -R的为准

docker容器时区问题

查看所有容器的时区

shell 复制代码
docker ps --format '{{.Names}}' | xargs -I {} sh -c 'echo -n "{}: " && docker exec {} date'

查看单个容器时区(如果与宿主机: date -R的结果不一致,就说明要调整)

shell 复制代码
docker exec jenkins date -R

查看容器中运行中的java时区

bash 复制代码
docker exec jenkins bash -c "java -XshowSettings:properties -version"

进入容器中查看java运行状态

bash 复制代码
docker docker exec -it jenkins /bin/bash
ps -ef | grep java
jps -lv
相关推荐
说实话起个名字真难啊5 小时前
实战docker部署dify及注意点
运维·docker·容器
Starry-sky(jing)8 小时前
crane 下载镜像:不连接 Docker,3 步准备并校验 ARM64 离线包
运维·docker·arm64·crane
对象存储与RustFS9 小时前
GPU 在空转等数据?PyTorch 训练集进 RustFS 的三种接法
后端·docker·云原生
可涵不会debug13 小时前
超级马里奥常驻极空间以后怎么打开?Docker运行游戏页面,手机电脑都能从浏览器进入
游戏·docker·智能手机
姜鱼问生1 天前
网页一片白?Docker 跑 Nginx 读不到文件,403 Forbidden 排查实录
nginx·docker·容器
ms72wx1 天前
Docker 命令学习笔记:从入门到进阶的实战指南
笔记·学习·docker
java_logo1 天前
Docker 部署 Excalidraw:轻松搭建手绘风格白板
运维·docker·容器·excalidraw·白板·轩辕镜像
海的透彻1 天前
如何让docker容器启动时用自定义的用户
java·docker·dubbo
程序员清风1 天前
LibreChat 实战:用 Docker 搭建可扩展的多模型对话平台
运维·docker·容器
Web3&Basketball1 天前
从0到1落地AI Agent沙箱隔离Docker实战:踩坑全记录
运维·docker·容器·agent·容器安全·沙箱隔离