[特殊字符] 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 是现代云原生开发与部署的必备技能,建议结合实际项目反复实践加深理解。

相关推荐
ifanatic3 分钟前
[每周一更]-(第161期):分析服务器中内存即将爆满过程
运维·服务器
Moshow郑锴14 分钟前
实战分享:用 SpringBoot-API-Scheduler 构建 API 监控闭环 —— 从断言验证到智能警报
java·spring boot·后端·任务调度
热爱学习的小怪兽25 分钟前
docker的一些常用指令
运维·docker·容器
金融数据出海43 分钟前
日本股票市场渲染 KlineCharts K 线图
前端·后端
1***t8271 小时前
将 vue3 项目打包后部署在 springboot 项目运行
java·spring boot·后端
疯狂的程序猴1 小时前
iOS 日志管理的工程化实践 构建从开发调试到系统日志分析的多工具协同体系
后端
s***4531 小时前
Linux 下安装 Golang环境
linux·运维·golang
申阳1 小时前
Day 17:03. 基于 Tauri 2.0 开发后台管理系统-登录页面开发
前端·后端·程序员
JobDocLS1 小时前
Ubuntu22.04的安装方法
运维
疯狂的程序猴1 小时前
Transporter 在 iOS 上架流程中的角色变化 本地上传工具的定位、局限与多工具协作趋势分析
后端