[特殊字符] Docker 从入门到实战:全流程教程 + 项目部署指南(含镜像加速)
Docker 是现代 DevOps 的基石,应用广泛于微服务、CI/CD、K8s、云原生等场景。本文将从 0 到 1 手把手带你掌握 Docker 的核心知识点,并完成 Java + Nginx 项目部署,适合新手与进阶开发者阅读与实战。
📚 目录
-
Docker 快速入门
-
入门命令
-
CentOS7 安装 Docker & Compose
-
配置镜像加速器(推荐)
-
Docker 常用命令速查
-
数据卷:持久化数据共享
-
Dockerfile 编写语法详解
-
Docker 网络机制
-
Java + Nginx 项目部署
-
Docker Compose 使用指南
-
总结与推荐
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"]
}
EOFsudo systemctl daemon-reexec
sudo systemctl restart docker
docker info | grep Registry
推荐国内加速地址:
-
阿里云:https://<你的ID>.mirror.aliyuncs.com
-
网易云:https://hub-mirror.c.163.com
-
清华大学:https://registry.tuna.tsinghua.edu.cn
-
中科大:https://docker.mirrors.ustc.edu.cn
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:- appnetnginx:image: nginxports:- "80:80"volumes:- ./nginx.conf:/etc/nginx/nginx.conf:ronetworks:- appnetnetworks: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 是现代云原生开发与部署的必备技能,建议结合实际项目反复实践加深理解。