SpringCloud_day02

目录

1docker课程介绍

2docker的安装

​编辑

1. 卸载旧版本(如有)

2. 安装依赖包

3. 添加 Docker 官方仓库

4. 安装 Docker 引擎

 启动 Docker 并设置开机自启

6. 验证安装

可选:配置国内镜像加速(推荐)

3部署Mysql

4命令解读

问题

5docker基础-常见命令

6命令别名

7数据卷挂载

问题

8本地目录挂载

问题:

9dockerfile语法

10自定义镜像

11容器网络互联

问题:

12项目部署-部署Java应用

问题:

13项目部署-部署前端

14DockerCompose

15总结


1docker课程介绍

2docker的安装

1. 卸载旧版本(如有)

如果系统中已安装旧版本 Docker,先卸载:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. 安装依赖包

安装 Docker 所需的依赖工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3. 添加 Docker 官方仓库

设置 Docker 的 yum 仓库(使用国内镜像加速下载):

如果官方仓库速度慢,可替换为国内镜像(如阿里云):

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4. 安装 Docker 引擎

安装最新版 Docker(包含docker-ce引擎、docker-ce-cli客户端和containerd.io):

sudo yum install -y docker-ce docker-ce-cli containerd.io

然后指定版本安装(例如):

sudo yum install -y docker-ce-24.0.6 docker-ce-cli-24.0.6 containerd.io

 启动 Docker 并设置开机自启

# 启动Docker服务
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

6. 验证安装

检查 Docker 版本及运行状态:

# 查看Docker版本
docker --version

# 检查服务状态(应显示active (running))
sudo systemctl status docker

# 运行测试容器(验证功能)
sudo docker run hello-world

可选:配置国内镜像加速(推荐)

为避免拉取镜像缓慢,可配置 Docker 镜像加速器(如阿里云、网易等):

  1. 创建 / 编辑配置文件:

  2. sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://<你的阿里云加速地址>.mirror.aliyuncs.com", "https://hub-mirror.c.163.com"]
    }
    EOF

  3. (阿里云加速地址需登录阿里云容器服务控制台获取,或直接使用公共镜像如https://hub-mirror.c.163.com

  4. 重启 Docker 使配置生效:

    sudo systemctl daemon-reload
    sudo systemctl restart docker

3部署Mysql

4命令解读

问题

在 docker run -p 3306:3306 中,冒号前的 3306 是宿主机(你的虚拟机或物理机)的端口冒号后的 3306 是容器内部 MySQL 服务的端口

5docker基础-常见命令

6命令别名

7数据卷挂载

问题

删除指定数据卷和清除数据卷有什么区别?

8本地目录挂载

问题:

docker volume inspect和docker inspect区别?

前者是查看某个数据卷详情,后者是查看容器详情

第三张图片名称对应的意思?

mounts:挂载  Type:volume类型是卷  source表示卷对应的宿主机内部的目录,Destination对应的是容器内的目录

9dockerfile语法

这个可以合并,因为Ubuntu有基础镜像,那么Java也可以做自己的基础镜像

10自定义镜像

11容器网络互联

问题:

关键:加入自定义网络的容器可以通过容器名相互访问

12项目部署-部署Java应用

问题:

步骤:

13项目部署-部署前端

根据豆包就可以操作,不需要去记

14DockerCompose

15总结

上面看完下面不用看

从 Docker 基础到全栈项目部署:一站式学习与实践指南
引言:Docker 为何是开发者的必修课?
在云原生时代,Docker 已成为容器化技术的事实标准。它通过容器化技术,将应用及其依赖打包成一个可移植的 “容器”,实现了 “一次构建,处处运行” 的愿景。对于开发者而言,掌握 Docker 意味着:
环境一致性:彻底解决 “在我电脑上能跑,到你电脑上就崩” 的尴尬;
高效部署:复杂应用的部署流程从 “小时级” 压缩到 “分钟级”;
资源隔离:不同应用间资源隔离,避免版本冲突与依赖污染;
微服务支撑:为 Spring Cloud、Kubernetes 等微服务架构提供底层容器支持。
本指南将从 Docker 安装入门,逐步深入到数据卷、Dockerfile、容器互联,最终落地 Java 应用与前端项目的全栈部署,带您完成从理论到实战的完整闭环。
一、Docker 安装:从零开始搭建容器环境
1. 卸载旧版本(如存在)
在安装新版本 Docker 前,需彻底清理系统中可能存在的旧版 Docker 及其依赖,避免版本冲突。执行以下命令:
bash
sudo yum remove -y docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
若系统是 Ubuntu/Debian,对应命令为:
bash
sudo apt-get remove -y docker docker-engine docker.io containerd runc
清理完成后,通过docker -v验证,若提示 “未找到命令” 则说明卸载成功。
2. 安装依赖包
Docker 的运行依赖于一些系统工具,需提前安装。以 CentOS 为例:
bash
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
对于 Ubuntu/Debian:
bash
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
这些依赖包主要用于包管理工具增强(如yum-utils)、存储驱动支持(如device-mapper)和安全证书管理(如ca-certificates)。
3. 添加 Docker 官方仓库
为了获取最新版本的 Docker,需配置官方软件仓库。CentOS 执行:
bash
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Ubuntu/Debian 则通过以下步骤添加:
bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
若网络访问官方仓库较慢,可替换为国内镜像源(如阿里云):
bash
# CentOS替换为阿里云源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# Ubuntu/Debian替换为阿里云源
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
4. 安装 Docker 引擎
配置好仓库后,即可安装 Docker 最新版本:
bash
# CentOS
sudo yum install -y docker-ce docker-ce-cli containerd.io

# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io
其中,docker-ce是社区版引擎,docker-ce-cli是命令行工具,containerd.io是容器运行时(负责容器生命周期管理)。
5. 启动 Docker 并设置开机自启
安装完成后,启动 Docker 服务并配置开机自启:
bash
sudo systemctl start docker
sudo systemctl enable docker
通过systemctl status docker查看服务状态,若显示active (running)则说明启动成功。
6. 验证安装
执行以下命令验证 Docker 是否安装成功:
bash
docker -v  # 查看版本
docker run hello-world  # 运行测试容器
若hello-world容器正常输出 “Hello from Docker!”,则说明 Docker 安装与运行环境完全正常。
可选:配置国内镜像加速(推荐)
由于 Docker Hub 服务器在国外,拉取镜像速度较慢,建议配置国内镜像加速器(如阿里云、网易云、DaoCloud 等)。以阿里云为例:
登录阿里云容器镜像服务,获取专属镜像加速地址;
创建或编辑/etc/docker/daemon.json文件:
json
{
  "registry-mirrors": ["https://你的专属加速地址.mirror.aliyuncs.com"]
}
重启 Docker 服务使配置生效:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
之后拉取镜像时,速度会有显著提升。
二、部署 MySQL:Docker 化数据库的实践
MySQL 是开发者最常用的关系型数据库之一,通过 Docker 部署 MySQL 可大幅简化环境搭建流程。
1. 拉取 MySQL 镜像
首先从 Docker Hub 拉取官方 MySQL 镜像(以 5.7 版本为例):
bash
docker pull mysql:5.7
若配置了国内镜像加速,拉取速度会非常快。
2. 启动 MySQL 容器
通过docker run命令启动 MySQL 容器,关键参数说明:
-d:后台运行;
--name mysql:容器命名为mysql;
-p 3306:3306:端口映射(宿主机 3306 → 容器 3306);
-e TZ=Asia/Shanghai:设置时区为上海,避免时间差异;
-e MYSQL_ROOT_PASSWORD=123:设置 root 用户密码为123;
-v /opt/mysql/data:/var/lib/mysql:挂载数据目录(数据持久化);
-v /opt/mysql/conf:/etc/mysql/conf.d:挂载配置目录(自定义配置);
-v /opt/mysql/init:/docker-entrypoint-initdb.d:挂载初始化脚本目录(自动执行 SQL)。
完整命令:
bash
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v /opt/mysql/data:/var/lib/mysql \
  -v /opt/mysql/conf:/etc/mysql/conf.d \
  -v /opt/mysql/init:/docker-entrypoint-initdb.d \
  mysql:5.7
3. 验证 MySQL 服务
查看容器运行状态:docker ps | grep mysql;
进入容器内部测试:docker exec -it mysql mysql -uroot -p123,若能成功登录 MySQL 命令行,则说明服务正常;
宿主机连接测试:使用 Navicat、DBeaver 等工具,以root:123为账号密码,连接localhost:3306,验证是否能正常访问数据库。
4. 数据与配置管理
数据持久化:由于挂载了/opt/mysql/data目录,即使容器删除,数据库文件也会保留在宿主机,重建容器时重新挂载该目录即可恢复数据;
配置自定义:在/opt/mysql/conf目录下创建my.cnf文件,可自定义 MySQL 配置(如字符集、缓存大小等);
初始化脚本:将建库、建表的 SQL 脚本放入/opt/mysql/init目录,容器启动时会自动执行这些脚本,实现数据库自动化初始化。
三、Docker 命令解读:从基础到进阶
Docker 命令是与容器交互的核心工具,掌握常用命令是使用 Docker 的基础。
1. 镜像管理命令
拉取镜像:docker pull [镜像名:标签](如docker pull nginx:latest);
查看本地镜像:docker images(可加-a显示所有镜像,包括中间层);
删除镜像:docker rmi [镜像ID/镜像名](若镜像被容器使用,需先删除容器);
搜索镜像:docker search [关键词](如docker search tomcat);
导出镜像:docker save -o [保存路径] [镜像名](如docker save -o nginx.tar nginx:latest);
导入镜像:docker load -i [镜像包路径](如docker load -i nginx.tar)。
2. 容器管理命令
创建并启动容器:docker run [参数] 镜像名(如docker run -d --name nginx -p 80:80 nginx);
查看运行中容器:docker ps(加-a显示所有容器,包括已停止的);
启动 / 停止 / 重启容器:docker start/stop/restart [容器名/ID];
进入容器内部:docker exec -it [容器名/ID] /bin/bash(交互式终端);
查看容器日志:docker logs [容器名/ID](加-f实时跟踪日志);
删除容器:docker rm [容器名/ID](加-f强制删除运行中的容器);
查看容器资源使用:docker stats [容器名/ID](CPU、内存、网络等实时数据)。
3. 数据卷与网络命令
数据卷创建:docker volume create [卷名](如docker volume create mysql-data);
查看数据卷:docker volume ls;
删除数据卷:docker volume rm [卷名];
清除无引用数据卷:docker volume prune;
创建网络:docker network create [网络名](如docker network create app-net);
查看网络:docker network ls;
连接容器到网络:docker network connect [网络名] [容器名]。
4. 命令别名(提升效率小技巧)
为了简化重复命令的输入,可在~/.bashrc(CentOS/Ubuntu)或~/.zshrc(Zsh)中配置命令别名:
bash
# 编辑配置文件
vi ~/.bashrc

# 添加以下别名
alias dk='docker'
alias dkp='docker ps'
alias dki='docker images'
alias dkrm='docker rm -f'
alias dkrmi='docker rmi -f'
alias dkexec='docker exec -it'

# 使配置生效
source ~/.bashrc
之后可直接用dkp代替docker ps,大幅提升操作效率。
四、数据卷挂载:容器数据的持久化方案
在 Docker 中,数据卷是实现数据持久化和容器间数据共享的核心机制,分为命名数据卷和本地目录挂载两种形式。
1. 命名数据卷
命名数据卷由 Docker 统一管理,存储路径在 Docker 默认的存储目录下(如/var/lib/docker/volumes/)。
创建数据卷:docker volume create mysql-data;
查看数据卷详情:docker volume inspect mysql-data;
在容器中使用数据卷:启动容器时通过-v指定,如:
bash
docker run -d --name mysql \
  -v mysql-data:/var/lib/mysql \
  mysql:5.7
命名数据卷的优势是管理简单,Docker 会自动处理存储路径;缺点是宿主机上的路径不直观,不便于直接操作数据。
2. 本地目录挂载
本地目录挂载是将宿主机的任意目录挂载到容器内部,实现数据的直接管理。
以 MySQL 为例,完整挂载命令:
bash
docker run -d --name mysql \
  -v /opt/mysql/data:/var/lib/mysql \       # 数据目录挂载
  -v /opt/mysql/conf:/etc/mysql/conf.d \   # 配置目录挂载
  -v /opt/mysql/init:/docker-entrypoint-initdb.d \ # 初始化脚本挂载
  mysql:5.7
本地目录挂载的优势:
数据持久化:容器删除后,数据仍保存在宿主机挂载目录;
配置灵活:可在宿主机直接修改配置文件、执行 SQL 脚本,无需进入容器;
备份与迁移便捷:只需备份宿主机挂载目录,即可实现数据和配置的迁移;
存储资源统一管理:利用宿主机的存储优势(如大容量硬盘、RAID 阵列),保障数据可靠性。
3. 数据卷的应用场景对比
场景    推荐方案    原因分析
简单应用数据持久化    命名数据卷    管理简单,Docker 自动维护,适合对数据操作需求低的场景
数据库、中间件部署    本地目录挂载    需频繁操作数据、配置,本地目录挂载更直观、灵活,便于备份和故障排查
容器间共享配置文件    本地目录挂载    多个容器可挂载同一宿主机目录,实现配置文件的集中管理
临时缓存数据    匿名数据卷    无需持久化,容器删除后数据自动清理(如-v /tmp/cache)
五、Dockerfile 语法:自定义镜像的基石
Dockerfile 是定义镜像构建流程的文本文件,通过编写 Dockerfile,可将应用及其依赖 “固化” 为可复用的镜像。
1. Dockerfile 基础语法
FROM:指定基础镜像(必需,且为第一条指令),如FROM openjdk:8-jdk-slim;
MAINTAINER:维护者信息(可选),如MAINTAINER yourname@example.com;
RUN:构建镜像时执行的命令(如安装依赖、编译代码),如RUN apt-get update && apt-get install -y curl;
COPY/ADD:将宿主机文件复制到镜像中(COPY仅复制,ADD支持解压 tar 包、下载 URL),如COPY app.jar /app/;
WORKDIR:设置后续指令的工作目录,如WORKDIR /app;
ENV:设置环境变量,如ENV JAVA_OPTS="-Xms512m -Xmx1024m";
EXPOSE:声明容器暴露的端口(仅为文档说明,实际需-p映射),如EXPOSE 8080;
CMD/ENTRYPOINT:容器启动时执行的命令(CMD可被docker run参数覆盖,ENTRYPOINT不可覆盖),如CMD ["java", "-jar", "app.jar"]。
2. 构建 Spring Boot 应用镜像示例
以一个 Spring Boot 应用为例,编写 Dockerfile:
dockerfile
# 基础镜像(包含JDK)
FROM openjdk:8-jdk-slim

# 维护者信息
MAINTAINER dev@example.com

# 复制应用Jar包到镜像
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar

# 设置工作目录
WORKDIR /app

# 暴露端口
EXPOSE 8080

# 启动命令
ENTRYPOINT ["java", "-jar", "app.jar"]
3. 构建并使用自定义镜像
在 Dockerfile 所在目录执行构建命令:
bash
docker build -t my-springboot-app:1.0 .
其中,-t指定镜像名和标签,.表示 Dockerfile 在当前目录。
构建完成后,即可通过docker run启动自定义镜像:
bash
docker run -d -p 8080:8080 my-springboot-app:1.0
4. 多阶段构建(优化镜像体积)
对于需要编译的项目(如 Java、Go),可通过多阶段构建减少镜像体积。以 Spring Boot 应用为例:
dockerfile
# 第一阶段:编译代码
FROM maven:3.8.4-openjdk-8 AS builder
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -Dmaven.test.skip=true

# 第二阶段:运行应用
FROM openjdk:8-jdk-slim
WORKDIR /app
COPY --from=builder /app/target/demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
第一阶段使用包含 Maven 的镜像编译代码,第二阶段仅使用轻量的 JDK 镜像运行应用,最终镜像体积可减少 70% 以上。
六、容器网络互联:多容器协作的通信方案
在实际项目中,往往需要多个容器协同工作(如前端容器、后端容器、数据库容器),Docker 网络为容器间通信提供了支持。
1. Docker 网络模式
Docker 默认提供三种网络模式:
bridge 模式(默认):容器连接到默认网桥docker0,通过端口映射与外部通信;
host 模式:容器与宿主机共享网络命名空间,容器端口直接暴露在宿主机上;
none 模式:容器无网络配置,需手动配置网络。
2. 自定义网络实现容器互联
为了让多个容器在同一网络中直接通信,建议创建自定义网络:
bash
docker network create app-net
启动容器时指定该网络:
bash
# 启动MySQL容器
docker run -d --name mysql --network app-net -e MYSQL_ROOT_PASSWORD=123 mysql:5.7

# 启动Spring Boot容器
docker run -d --name springboot --network app-net -p 8080:8080 my-springboot-app:1.0
此时,springboot容器可通过容器名直接访问mysql容器(如数据库连接地址为jdbc:mysql://mysql:3306/db_name),无需通过宿主机 IP,通信更高效且无需暴露不必要的端口。
3. 网络互通的优势
服务发现简化:容器间通过名称即可通信,无需硬编码 IP 地址;
网络隔离性:不同项目可创建不同网络,避免端口冲突和服务干扰;
安全性提升:仅暴露必要的对外端口,内部容器通信不经过宿主机网络,降低攻击面。
七、项目部署:Docker 化 Java 应用全流程
将 Java 应用(以 Spring Boot 为例)通过 Docker 部署,可实现环境标准化、部署自动化。
1. 准备 Spring Boot 应用
确保 Spring Boot 应用可正常打包(通过mvn clean package生成 Jar 包),并在application.yml中配置数据库连接(若使用容器互联,数据库地址为容器名,如mysql)。
2. 编写 Dockerfile
参考 “多阶段构建” 示例,编写 Dockerfile:
dockerfile
FROM maven:3.8.4-openjdk-8 AS builder
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -Dmaven.test.skip=true

FROM openjdk:8-jdk-slim
WORKDIR /app
COPY --from=builder /app/target/demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
3. 构建并推送镜像(可选)
若需共享镜像,可将其推送到 Docker Registry(如 Docker Hub、阿里云镜像仓库):
bash
# 登录Registry
docker login

# 打标签(格式:Registry地址/用户名/镜像名:标签)
docker tag my-springboot-app:1.0 yourname/my-springboot-app:1.0

# 推送镜像
docker push yourname/my-springboot-app:1.0
4. 部署并启动容器
在目标服务器上拉取镜像并启动:
bash
docker pull yourname/my-springboot-app:1.0
docker run -d --name springboot --network app-net -p 8080:8080 yourname/my-springboot-app:1.0
5. 验证应用运行
查看容器日志:docker logs -f springboot,确认无报错;
访问应用:通过curl http://服务器IP:8080或浏览器访问,验证接口是否正常响应;
测试数据库连接:调用涉及数据库操作的接口,确认数据可正常读写。
八、项目部署:Docker 化前端应用实践
前端应用(如 Vue、React、静态 HTML)也可通过 Docker 部署,实现快速交付。
1. 准备前端项目
确保前端项目已构建(如 Vue 项目执行npm run build生成dist目录)。
2. 编写 Dockerfile
以 Nginx 为基础镜像,部署静态前端资源:
dockerfile
FROM nginx:alpine

# 复制构建后的前端文件到Nginx默认静态目录
COPY dist /usr/share/nginx/html

# 复制自定义Nginx配置(可选)
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露端口
EXPOSE 80
其中,nginx.conf可自定义端口、反向代理等配置,示例:
nginx
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;  # 解决Vue路由刷新404问题
    }

    # 反向代理后端接口(示例)
    location /api {
        proxy_pass http://springboot:8080;
    }
}
3. 构建并启动前端容器
bash
docker build -t my-frontend:1.0 .
docker run -d --name frontend --network app-net -p 80:80 my-frontend:1.0
此时,前端容器与后端容器在同一网络app-net中,可通过容器名(如springboot)反向代理后端接口。
4. 验证前端部署
访问http://服务器IP,确认前端页面正常加载;
测试接口调用(如点击 “查询数据” 按钮),确认前端与后端容器通信正常。
九、Docker Compose:多容器应用的编排利器
当项目包含多个容器(如前端、后端、数据库、Redis)时,手动管理每个容器的启动顺序、网络配置会非常繁琐,Docker Compose可通过一个配置文件(docker-compose.yml)实现多容器的一键编排。
1. 安装 Docker Compose
bash
# 下载Docker Compose二进制文件
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version
2. 编写 docker-compose.yml
以 “前端 + 后端 + MySQL” 的全栈项目为例,docker-compose.yml内容:
yaml
version: '3'
services:
  # 前端服务
  frontend:
    build: ./frontend  # 前端项目目录(包含Dockerfile)
    ports:
      - "80:80"
    networks:
      - app-net
    depends_on:
      - springboot  # 依赖后端服务,确保后端启动后再启动前端
    restart: always

  # 后端服务
  springboot:
    build: ./springboot  # 后端项目目录(包含Dockerfile)
    ports:
      - "8080:8080"
    networks:
      - app-net
    depends_on:
      - mysql  # 依赖MySQL服务
    restart: always

  # MySQL服务
  mysql:
    image: mysql:5.7
    ports:
      - "3306:3306"
    networks:
      - app-net
    environment:
      - MYSQL_ROOT_PASSWORD=123
      - MYSQL_DATABASE=demo_db
    volumes:
      - mysql-data:/var/lib/mysql
    restart: always

networks:
  app-net:
    driver: bridge

volumes:
  mysql-data:
3. 一键启动与管理
在docker-compose.yml所在目录,执行以下命令:
启动所有服务:docker-compose up -d;
查看服务状态:docker-compose ps;
查看服务日志:docker-compose logs -f springboot;
停止所有服务:docker-compose down;
构建并启动(若 Dockerfile 有变更):docker-compose up -d --build。
Docker Compose 通过depends_on保证服务启动顺序,通过networks实现容器互联,通过volumes实现数据持久化,大幅简化了多容器应用的部署与管理。
总结:Docker 生态的学习与成长路径
从 Docker 安装到全栈项目部署,我们完成了从基础到实战的完整学习。Docker 的核心价值在于标准化与自动化,它不仅是一项技术,更是一种开发与运维的协同理念。
未来的学习方向可围绕以下几点展开:
深入 Kubernetes:Docker 是容器化的基础,Kubernetes 是容器编排的王者,学习 K8s 可实现大规模容器集群的管理;
CI/CD 集成:将 Docker 与 Jenkins、GitLab CI 等工具结合,实现代码提交→镜像构建→应用部署的自动化流程;
云原生技术栈:探索服务网格(Istio)、无服务器(Serverless)等云原生技术,构建更高效、更弹性的应用架构。
Docker 的学习曲线虽有一定坡度,但掌握后带来的效率提升是指数级的。希望本指南能成为您 Docker 学习之路上的坚实基石,助您在云原生时代的技术浪潮中乘风破浪。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰克尼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值