从 0 到 1 快速掌握 Docker 基本操作

写在前面

很多人学习 Docker 时,都停留在"知道是容器技术"的阶段,却始终没有"动起来"。如果你想:

  • 本地搭建 Docker 环境
  • ️ 学会构建和运行容器
  • 用几条命令就能部署一个 Web 应用

那么这一讲你一定要看完。本文将手把手教你:

✅ 如何安装 Docker(Windows、macOS、Linux)

✅ 最常用的 20+ 命令解释和实践

✅ 最容易踩坑的安装问题与解决方案


一、Docker 安装指南(各平台)

Linux 系统(推荐 Ubuntu)

Step 1:更新依赖包

bash 复制代码
sudo apt update
sudo apt install ca-certificates curl gnupg

Step 2:添加官方 GPG 密钥和仓库源

bash 复制代码
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Step 3:安装 Docker 引擎

bash 复制代码
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Step 4:测试安装

bash 复制代码
sudo docker run hello-world

提示:可通过 sudo usermod -aG docker $USER 让当前用户免 sudo 运行 docker


macOS 与 Windows 安装

macOS 用户注意:

  • macOS 使用的是基于虚拟机的 Docker Desktop,不是原生运行

Windows 用户注意:

  • 需开启 WSL2 支持(或 Hyper-V)
  • Windows Home 推荐配合 WSL2 + Docker Desktop

二、最常用 Docker 命令全解析

以下是你日常开发中最常用的命令,分为 5 类:


1. 镜像相关命令

命令 说明
docker pull nginx 从远端拉取镜像
docker images 查看本地镜像列表
docker rmi nginx 删除镜像
docker build -t myapp:v1 . 构建镜像(基于 Dockerfile)

2. 容器相关命令

命令 说明
docker run -d -p 80:80 nginx 后台运行容器并映射端口
docker ps 查看运行中的容器
docker ps -a 查看所有容器(含已退出)
docker stop 容器ID 停止容器
docker rm 容器ID 删除容器
docker exec -it 容器ID bash 进入容器内部交互

3. 数据卷命令(数据持久化)

命令 说明
docker volume create mydata 创建数据卷
docker volume ls 查看卷列表
docker run -v mydata:/data nginx 容器挂载数据卷

4. 网络命令(多容器通信)

命令 说明
docker network ls 查看网络
docker network create mynet 创建网络
docker run --network=mynet ... 指定容器使用自定义网络

5. 容器管理与资源限制

命令 说明
docker stats 实时查看容器 CPU/内存使用情况
docker logs 容器ID 查看容器日志
docker restart 容器ID 重启容器

三、实战:一键部署 Nginx + HTML 页面

bash 复制代码
# 新建工作目录并编写 index.html
mkdir web && cd web
echo "<h1>Hello Docker!</h1>" > index.html

# 使用 nginx 容器挂载本地文件
docker run -d -p 8080:80 -v $PWD:/usr/share/nginx/html nginx

访问 http://localhost:8080,页面即显示 Hello Docker!


️ 四、常见安装问题排查

问题 原因 解决方案
docker: command not found 未安装 / 环境变量未生效 确认路径或重启 shell
Got permission denied 当前用户无权限 使用 sudo 或添加用户组
Docker Desktop 启动慢 / 崩溃 系统资源不足 / WSL 配置问题 调整资源限制、重装 Docker Desktop
镜像下载慢 默认源在国外 配置国内镜像源,如阿里云、DaoCloud

五、✅ 总结

  • Docker 安装因系统略有不同,但核心流程一致
  • 掌握常用命令能快速上手日常开发与部署
  • 熟悉数据卷、网络、资源控制,有助于容器化复杂系统
  • 实战操作是最好的老师:多 run、多 exec、多试错!
相关推荐
tedcloud12315 分钟前
Docker Compose 部署 Uptime Kuma:配置 HTTPS、QQ 邮箱告警与数据备份
服务器·网络协议·ui·docker·容器·https·开源
小蒜学长26 分钟前
基于SpringBoot 框架的自媒体新闻系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·mysql数据库·自媒体新闻管理系统
IT_陈寒1 小时前
JavaScript实战技巧总结:深挖数组遍历的性能陷阱与实战解法
前端·人工智能·后端
syntaxsage1 小时前
Dive:Docker 镜像层可视化分析工具
运维·其他·docker·容器
java_logo1 小时前
Docker 部署 Samba:轻松搭建局域网文件共享
运维·docker·容器·文件共享·samba·smb·轩辕镜像
学长毕设11 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
todoitbo11 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
滴滴答答哒11 小时前
ASP.NET Core + FaceRecognitionDotNet 人脸识别实战:DI 单例、特征向量持久化与 1:N 比对
后端·asp.net
captain37613 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
IT_陈寒15 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端