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

相关推荐
2301_8153577011 分钟前
Spring框架--IOC技术
java·后端·spring
huan_199311 分钟前
通过shell脚本检测服务是否存活并进行邮件的通知
linux·运维·linux运维·服务宕机通知·shell运维脚本
巅峰程序14 分钟前
[docker]更新容器中镜像版本
docker
power 雀儿22 分钟前
集群聊天服务器学习 配置开发环境(VScode远程连接虚拟机Linux开发)(2)
运维·服务器·学习
李景琰27 分钟前
分布式事务之Seata
java·分布式
数通Dinner33 分钟前
基于netmiko模块实现支持SSH or Telnet的多线程多厂商网络设备自动化巡检脚本
运维·网络·python·自动化·信息与通信
egoist202335 分钟前
【Linux仓库】权限的量子纠缠:用户/组/other如何编织Linux访问控制网?
linux·运维·服务器·编辑器·权限·文件权限
MZWeiei2 小时前
Spark 中,创建 DataFrame 的方式(Scala语言)
大数据·分布式·spark·scala
CodingCos2 小时前
【【嵌入式开发 Linux 常用命令系列 19 -- linux top 命令的交互使用介绍】
linux·运维·服务器·top 命令
富士康质检员张全蛋3 小时前
Kubernetes etcd 故障恢复(1)
容器·kubernetes·etcd