docker部署相关知识
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
后,自动触发:拉取最新代码
编译/测试代码
构建 Docker 镜像
部署到测试或生产环境
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