Docker是一个容器化平台,用于打包、分发和运行应用

🔹 核心功能:

  • 把应用和依赖封装成一个镜像(image)

  • 用容器(container)快速启动、停止、部署服务

  • 保证“开发环境”和“生产环境”一致(不再有“我这边能跑”问题)

🔹 常见用途:

  • 部署 Web 应用(比如 Flask、Node.js)

  • 运行数据库(如 MySQL、Redis)

  • 机器学习推理环境(YOLOv5、TensorFlow)

  • 构建微服务架构

Jenkins 是一个持续集成/持续交付(CI/CD)工具

🔹 核心功能:

  • 自动执行构建(Build)和测试(Test)

  • 自动部署(Deploy)到服务器或 Docker 容器

  • 支持 Pipeline(流水线脚本)定义一整套流程

  • 能和 GitHub/GitLab、Docker、Kubernetes 等配合使用

🔹 常见用途:

  • 当你 git push 后,自动触发:

    1. 拉取最新代码

    2. 编译/测试代码

    3. 构建 Docker 镜像

    4. 部署到测试或生产环境

Docker + Jenkins 关系

Jenkins Pipeline 中使用 Docker 来构建和发布镜像,实现持续集成和持续交付。

[GitHub 提交代码] → Jenkins 自动触发构建  
→ Jenkins 用 Docker 打包成镜像  
→ Jenkins 推送镜像到镜像仓库  
→ Jenkins 部署容器到服务器

启动带blue ocean的jenkins容器:

docker run -u root -d --name jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

-u root  :以root身份启动容器

-d: :detached mode,后台运行容器

-p 8080:8080 :把容器内的 Jenkins Web UI(默认端口 8080)映射到宿主机的 8080。

-p 50000:50000 :Jenkins 用于和 agent 节点通信的端口,一般保留。

-v jenkins-data:/var/jenkins_home :把 Jenkins 的数据(插件、配置、job 等)持久化到 Docker 卷 jenkins-data。即使你删除容器,数据也不会丢。

-v /var/run/docker.sock:/var/run/docker.sock:让 Jenkins 容器能直接调用宿主机的 Docker 引擎

有了这个映射,Jenkins 里的 pipeline 脚本就能执行命令:

docker build ...
docker run ...
docker push ...

查看初始密码

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐