docker:
1.在linux中下载安装docker,配置镜像源。
2.在软件启动阶段,要对docker这个容器做的事情
3.在项目运行阶段,要对docker做的事情
4.在项目保留阶段,要对docker做的事情
以下是围绕 Docker 在 Linux 环境中从安装到项目全生命周期(启动、运行、保留)的关键操作说明,适用于后端开发和运维场景:
1. 在 Linux 中下载安装 Docker,并配置镜像源
安装步骤(以 Ubuntu/CentOS 为例)
Ubuntu(推荐使用官方脚本或 apt):
bash
# 卸载旧版本(如有)
sudo apt remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
CentOS(使用 yum 或 dnf):
bash
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
配置镜像加速器(以阿里云为例)
编辑或创建 /etc/docker/daemon.json:
json
{
"registry-mirrors": [
"https://<your-mirror-id>.mirror.aliyuncs.com"
]
}
注:需在阿里云容器镜像服务控制台获取专属加速地址。
然后重启 Docker:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
验证安装
bash
docker --version
docker run hello-world
2. 软件启动阶段(开发/部署初期)对 Docker 的操作
此阶段目标:构建镜像、启动容器、验证服务可用性。
关键操作:
-
编写
Dockerfile定义运行环境、依赖、启动命令等。
DockerfileFROM openjdk:17-jdk-slim COPY target/app.jar /app.jar CMD ["java", "-jar", "/app.jar"] -
构建镜像
bashdocker build -t myapp:1.0 . -
运行容器(开发/测试)
bashdocker run -d \ --name myapp-container \ -p 8080:8080 \ -v /host/logs:/app/logs \ myapp:1.0 -
查看启动日志,确认服务就绪
bashdocker logs -f myapp-container
此阶段重点:容器能正常启动,接口可访问,配置正确(如端口、环境变量、挂载卷)。
3. 项目运行阶段(上线后)对 Docker 的操作
此阶段目标:保障服务稳定、监控、扩缩容、日志采集等。
关键操作:
-
使用
docker-compose或 Kubernetes 管理多服务yaml# docker-compose.yml 示例 version: '3' services: app: image: myapp:1.0 ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=prod volumes: - ./logs:/app/logs -
监控容器状态
bashdocker stats # 实时资源使用 docker ps # 查看运行容器 -
日志收集
bashdocker logs --tail 100 myapp-container # 或配置日志驱动(如 syslog、fluentd) -
健康检查(Dockerfile 或 compose 中配置)
DockerfileHEALTHCHECK --interval=30s --timeout=3s \ CMD curl -f http://localhost:8080/actuator/health || exit 1 -
自动重启策略
bashdocker run --restart=always ...
此阶段重点:高可用、可观测性、弹性伸缩、故障自愈。
4. 项目保留阶段(下线/归档/维护)对 Docker 的操作
此阶段目标:保留历史版本、清理资源、备份数据、便于回滚或审计。
关键操作:
-
保留镜像(打标签归档)
bashdocker tag myapp:1.0 myapp:1.0-20251229-archive docker save myapp:1.0-20251229-archive > myapp-1.0.tar -
备份挂载卷数据
bashtar -czf app-logs-backup.tar.gz /host/logs -
清理无用资源(谨慎操作)
bashdocker stop myapp-container docker rm myapp-container docker rmi myapp:1.0 docker system prune -a # 删除所有未使用的镜像、容器、网络等 -
镜像推送到私有仓库(如 Harbor)长期保存
bashdocker tag myapp:1.0 harbor.example.com/project/myapp:1.0 docker push harbor.example.com/project/myapp:1.0
此阶段重点:可追溯、可回滚、资源回收、安全归档。
总结(全生命周期视角)
| 阶段 | 核心目标 | 关键 Docker 操作 |
|---|---|---|
| 安装配置 | 搭建运行环境 | 安装 + 镜像加速 |
| 启动阶段 | 构建并验证服务 | Dockerfile → build → run → logs |
| 运行阶段 | 稳定运行 + 监控 | compose / k8s、健康检查、日志、重启策略 |
| 保留阶段 | 归档 + 清理 | save/tag/push 镜像、备份卷、prune 资源 |
如你使用 Spring Boot + MySQL + Redis 等典型 B 端架构,可进一步提供 docker-compose.yml 模板或 CI/CD 集成建议。是否需要?