
runroom/jenkinsRunroom Docker镜像仓库提供的Jenkins镜像,核心特性为支持Docker-in-Docker(DinD)功能,旨在解决容器环境中执行Docker相关操作的需求,可直接在Jenkins容器内部运行Docker命令、构建Docker镜像及管理容器,适用于CI/CD流程中的容器化应用开发与部署。
docker build、docker run、docker push等命令。通过以下命令启动支持Docker-in-Docker的Jenkins容器:
bashdocker run -d \ --name jenkins-dind \ --privileged \ # 必要权限,用于运行Docker-in-Docker -p 8080:8080 \ # Jenkins Web界面端口 -p 50000:50000 \ # Jenkins代理通信端口 -v jenkins_data:/var/jenkins_home \ # 持久化Jenkins数据 runroom/jenkins-dind
说明:
--privileged选项是运行DinD的必要条件,因其需要访问宿主机内核功能;jenkins_data为数据卷,用于持久化Jenkins配置、插件和任务数据。
支持通过环境变量自定义Jenkins配置,常用变量如下:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
JENKINS_ADMIN_USER | Jenkins管理员用户名 | admin |
JENKINS_ADMIN_PASSWORD | Jenkins管理员密码 | 自动生成(日志中查看) |
DOCKER_TLS_CERTDIR | Docker TLS证书存储目录 | /certs/client |
JENKINS_OPTS | Jenkins启动参数(如端口修改) | --httpPort=8080 |
示例(自定义管理员账号):
bashdocker run -d \ --name jenkins-dind \ --privileged \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins_data:/var/jenkins_home \ -e JENKINS_ADMIN_USER=ci-user \ -e JENKINS_ADMIN_PASSWORD=your_secure_password \ runroom/jenkins-dind
为避免容器重启后数据丢失,需通过数据卷或宿主机目录挂载持久化以下路径:
/var/jenkins_home:Jenkins主目录,存储配置、插件、工作空间等数据,建议通过命名卷(如示例中的jenkins_data)或宿主机目录挂载。/var/lib/docker(可选):Docker-in-Docker的镜像和容器存储目录,如需持久化Docker数据,可额外挂载该路径(如-v docker_data:/var/lib/docker)。--privileged模式会赋予容器较高权限,生产环境中应严格限制容器访问范围,避免暴露敏感资源,建议结合网络隔离、资源限制等措施增强安全性。--memory、--cpus参数),并使用高速存储(如SSD)挂载数据卷。--network指定自定义网络或配置代理。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务