docker容器修改jenkins时间不一致问题(8)

本文介绍了在Docker容器中运行的Jenkins时间不一致的问题,通过查看宿主机和容器时间,发现8小时的时差。解决方案包括在容器内创建Asia时区文件,复制宿主机时间到容器,并重启Jenkins容器,最终使Jenkins时间与宿主机保持一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间

查看时间

1 先查看宿主机的系统时间

date -R

 

2 进docker容器查看时间

docker exec -it -u root 容器id /bin/bash

查看容器内部的系统时间,跟宿主机的不一致

date -R

查看容器内部系统时区,显示的是Etc/UTC

root@cb8e397d5308:/# cat /etc/timezone Etc/UTC

修改容器时间

容器内部创建Asia时区文件

echo Asia/Shanghai >/etc/timezone

### 安装和配置Jenkins到Linux Docker容器 #### 准备工作 在开始之前,需确认已安装并运行Docker环境。可以通过`docker --version`验证当前系统的Docker版本是否满足需求[^1]。 #### 配置Docker镜像拉取与启动参数 通过指定端口映射、挂载卷以及特权模式来启动Jenkins容器。以下是完整的命令及其说明: ```bash docker run -d \ -p 8888:8080 \ -p 50000:50000 \ -v /var/jenkins_home:/var/jenkins_home \ -v /etc/localtime:/etc/localtime \ -v $(which docker):/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ --privileged=true \ --restart=always \ --name=jenkins \ jenkins/jenkins:lts ``` 上述命令中: - `-p 8888:8080`: 将主机的8888端口映射至容器内的8080端口。 - `-p 50000:50000`: 映射用于Jenkins节点通信的固定端口。 - `-v /var/jenkins_home:/var/jenkins_home`: 挂载数据目录以便持久化存储。 - `$(which docker):/usr/bin/docker`: 提供宿主机上的Docker二进制文件路径给容器内部使用。 - `/var/run/docker.sock:/var/run/docker.sock`: 共享Docker套接字以允许容器控制宿主机上的Docker服务[^2]。 #### 设置时间区域与时区同步 为了确保日志记录的时间一致性,在启动选项中加入JAVA_OPTS变量定义时区为亚洲上海标准时间: ```bash -e JAVA_OPTS="-Duser.timezone=Asia/Shanghai" ``` 此操作可以防止因同地区默认设置造成的时间差异问题[^4]。 #### 进一步集成Docker支持 如果计划让Jenkins管理其他Docker容器,则需要调整其插件配置或者直接修改全局工具配置下的Docker Host URI字段指向本地Unix Socket地址:`unix:///var/run/docker.sock`, 同时启用对应权限开关[^3]。 完成以上步骤后访问浏览器输入http://<your-server-ip>:8888即可进入初始向导界面完成后续初始化流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值