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

相关推荐
晓看云起时30 分钟前
kafka消息的顺序性如何保持一致的
分布式·kafka
运维@小兵42 分钟前
SpringBoot获取用户信息常见问题(密码屏蔽、驼峰命名和下划线命名的自动转换)
java·spring boot·后端
桦01 小时前
【Linux】g++安装教程
linux·运维·服务器
凉白开3381 小时前
Spark-streaming
大数据·分布式·spark
佳腾_1 小时前
【分布式系统中的“瑞士军刀”_ Zookeeper】三、Zookeeper 在实际项目中的应用场景与案例分析
分布式·zookeeper·云原生
Hfc.2 小时前
rabbitmq-集群部署
linux·运维·服务器
小草cys2 小时前
[零基础]内网ubuntu映射到云服务器上,http访问(frp内网穿透)
运维·服务器
问道飞鱼2 小时前
【springboot知识】配置方式实现SpringCloudGateway相关功能
java·spring boot·后端·gateway
工业甲酰苯胺3 小时前
K8s新手系列之K8s中的资源
云原生·容器·kubernetes
樽酒ﻬق3 小时前
打造美观 API 文档:Spring Boot + Swagger 实战指南
java·spring boot·后端