对于docker在项目中的完整实战

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

    定义运行环境、依赖、启动命令等。

    Dockerfile 复制代码
    FROM openjdk:17-jdk-slim
    COPY target/app.jar /app.jar
    CMD ["java", "-jar", "/app.jar"]
  • 构建镜像

    bash 复制代码
    docker build -t myapp:1.0 .
  • 运行容器(开发/测试)

    bash 复制代码
    docker run -d \
      --name myapp-container \
      -p 8080:8080 \
      -v /host/logs:/app/logs \
      myapp:1.0
  • 查看启动日志,确认服务就绪

    bash 复制代码
    docker 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
  • 监控容器状态

    bash 复制代码
    docker stats           # 实时资源使用
    docker ps              # 查看运行容器
  • 日志收集

    bash 复制代码
    docker logs --tail 100 myapp-container
    # 或配置日志驱动(如 syslog、fluentd)
  • 健康检查(Dockerfile 或 compose 中配置)

    Dockerfile 复制代码
    HEALTHCHECK --interval=30s --timeout=3s \
      CMD curl -f http://localhost:8080/actuator/health || exit 1
  • 自动重启策略

    bash 复制代码
    docker run --restart=always ...

此阶段重点:高可用、可观测性、弹性伸缩、故障自愈


4. 项目保留阶段(下线/归档/维护)对 Docker 的操作

此阶段目标:保留历史版本、清理资源、备份数据、便于回滚或审计

关键操作:

  • 保留镜像(打标签归档)

    bash 复制代码
    docker tag myapp:1.0 myapp:1.0-20251229-archive
    docker save myapp:1.0-20251229-archive > myapp-1.0.tar
  • 备份挂载卷数据

    bash 复制代码
    tar -czf app-logs-backup.tar.gz /host/logs
  • 清理无用资源(谨慎操作)

    bash 复制代码
    docker stop myapp-container
    docker rm myapp-container
    docker rmi myapp:1.0
    docker system prune -a   # 删除所有未使用的镜像、容器、网络等
  • 镜像推送到私有仓库(如 Harbor)长期保存

    bash 复制代码
    docker 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 集成建议。是否需要?

相关推荐
CV_J4 小时前
安装kibana
java·elasticsearch·spring cloud·docker·容器
kaoa0005 小时前
Linux入门攻坚——62、memcached使用入门
linux·运维·memcached
Wzx1980125 小时前
doker深学习
学习·docker
model20056 小时前
alibaba linux3 系统盘清理
linux·运维·服务器
WG_176 小时前
Linux:动态库加载总结_进程间通信+进程池 + 进程IPC(27/28/29/30/31/32)
linux·运维·服务器
好奇心害死薛猫6 小时前
docker_tailscale
docker·容器
一只懒鱼a6 小时前
docker部署nacos (版本2.3.2)
运维·docker
信创天地9 小时前
国产堡垒机部署实战:以奇安信、天融信为例构建运维安全三重防线
运维·安全
呉師傅9 小时前
东芝3525AC彩色复印机CC219测试页打印方法【实际操作】
运维·网络·windows·计算机外设·电脑
宴之敖者、11 小时前
Linux——权限
linux·运维·服务器