[特殊字符] Docker 从入门到实战:全流程教程 + 项目部署指南(含镜像加速)

Docker 是现代 DevOps 的基石,应用广泛于微服务、CI/CD、K8s、云原生等场景。本文将从 0 到 1 手把手带你掌握 Docker 的核心知识点,并完成 Java + Nginx 项目部署,适合新手与进阶开发者阅读与实战。


📚 目录

  1. Docker 快速入门

  2. 入门命令

  3. CentOS7 安装 Docker & Compose

  4. 配置镜像加速器(推荐)

  5. Docker 常用命令速查

  6. 数据卷:持久化数据共享

  7. Dockerfile 编写语法详解

  8. Docker 网络机制

  9. Java + Nginx 项目部署

  10. Docker Compose 使用指南

  11. 总结与推荐


1️⃣ Docker 快速入门

Docker 是一个开源的容器化平台,允许开发者将应用和依赖封装为轻量、可移植的容器,运行在任意平台。

快速测试:

复制代码
docker run hello-world

输出 Hello from Docker 表示环境配置成功 🎉。


2️⃣ Docker 入门命令

命令 含义
docker run 启动容器
docker ps 查看运行容器
docker ps -a 查看所有容器(包括停止的)
docker stop 停止容器
docker rm 删除容器
docker images 查看本地镜像
docker rmi 删除镜像
docker exec -it 进入容器终端
docker logs 查看日志

3️⃣ CentOS7 安装 Docker & Compose

安装 Docker CE

复制代码
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
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
sudo systemctl enable --now docker
docker version

安装 Docker Compose

复制代码
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version

4️⃣ 配置镜像加速器(推荐)

解决 Docker 拉取镜像慢或失败的问题。

编辑加速配置:

复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}
EOF

sudo systemctl daemon-reexec
sudo systemctl restart docker
docker info | grep Registry

推荐国内加速地址:


5️⃣ Docker 常用命令速查

复制代码
docker build -t myapp .           # 构建镜像
docker run -d --name app myapp    # 运行容器
docker stop/start app             # 启动/停止
docker logs -f app                # 查看日志
docker exec -it app /bin/bash     # 进入容器终端
docker system prune               # 清理所有无用资源

6️⃣ Docker 数据卷:持久化数据共享

方式一:绑定宿主机目录

复制代码
docker run -v /host/data:/app/data myapp

方式二:命名卷

复制代码
docker volume create mydata
docker run -v mydata:/app/data myapp

查看数据卷:

复制代码
docker volume ls

7️⃣ Dockerfile 语法详解

Dockerfile 是构建镜像的核心文件。

常见指令:

指令 功能说明
FROM 指定基础镜像
WORKDIR 设置工作目录
COPY 拷贝文件到镜像
RUN 构建时执行命令
CMD 默认启动命令
ENTRYPOINT 容器入口
EXPOSE 声明端口
ENV 环境变量

示例 Dockerfile(Java 项目)

复制代码
FROM openjdk:17
WORKDIR /app
COPY target/myapp.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

构建并运行:

复制代码
docker build -t my-java-app .
docker run -d -p 8080:8080 my-java-app

8️⃣ Docker 网络机制

Docker 支持多种网络模式:

模式 说明
bridge 默认网络,容器间通信
host 容器共享宿主机网络
none 无网络

自定义网络

复制代码
docker network create mynet
docker run --network mynet --name app myapp

9️⃣ Java + Nginx 项目部署

1️⃣ Nginx 容器

复制代码
docker run -d --name nginx \
  -p 80:80 \
  -v /my/nginx.conf:/etc/nginx/nginx.conf:ro \
  nginx:latest

2️⃣ Java 容器

复制代码
docker run -d --name java-app \
  --network mynet \
  -p 8080:8080 \
  my-java-app

🔟 Docker Compose 使用指南

用于管理多个容器的编排工具。

示例 docker-compose.yml

复制代码
version: "3.9"
services:
  java:
    build: .
    ports:
      - "8080:8080"
    networks:
      - appnet

  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    networks:
      - appnet

networks:
  appnet:

常用命令

复制代码
docker-compose up -d        # 启动服务
docker-compose down         # 停止并清理
docker-compose logs -f      # 实时日志
docker-compose exec java bash

🔚 11. 总结与推荐

本文涵盖了:

✅ Docker 安装与镜像加速配置

✅ 镜像构建与容器运行命令

✅ Dockerfile 语法 + 数据卷 + 网络

✅ Java + Nginx 容器化部署

✅ Docker Compose 多容器协同管理

💡 Docker 是现代云原生开发与部署的必备技能,建议结合实际项目反复实践加深理解。

相关推荐
想用offer打牌1 天前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp
KYGALYX1 天前
服务异步通信
开发语言·后端·微服务·ruby
掘了1 天前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
爬山算法1 天前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
七夜zippoe1 天前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Moment1 天前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
金刚猿1 天前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong1 天前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
Cobyte1 天前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc
忆~遂愿1 天前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker