[特殊字符] Docker 小白极速入门笔记

一、Docker是什么?(一句话理解)

Docker = 集装箱 + 快递系统

把你的应用和运行环境打包成一个"集装箱"(镜像),无论在哪台机器上都能一模一样地运行。

传统问题 :"我电脑上能跑,服务器上跑不了" Docker解决:一次打包,到处运行


二、核心概念(3个必须记住)

概念 比喻 作用
镜像 (Image) 集装箱模板 应用的打包文件,只读
容器 (Container) 运行的集装箱 镜像的实例,可运行、可修改
仓库 (Registry) 码头仓库 存放镜像的地方(如Docker Hub)

关系:镜像 → 运行 → 容器(一个镜像可以生成多个容器)


三、安装Docker

Linux(Ubuntu/Debian)

复制代码
# 一键安装脚本
curl -fsSL https://get.docker.com | sh
​
# 启动服务
sudo systemctl start docker
sudo systemctl enable docker
​
# 免sudo使用(需重新登录)
sudo usermod -aG docker $USER

Mac/Windows

直接下载 Docker Desktop 安装即可:https://www.docker.com/products/docker-desktop


四、最常用命令(掌握这10个就够了)

1. 镜像操作

复制代码
# 搜索镜像(以nginx为例)
docker search nginx
​
# 下载镜像
docker pull nginx:latest
​
# 查看本地镜像
docker images
​
# 删除镜像
docker rmi nginx

2. 容器操作(⭐重点)

复制代码
# 运行容器(最简单的例子)
docker run -d -p 80:80 --name mynginx nginx
​
# 解释:
# -d        后台运行(detached)
# -p 80:80  端口映射(主机端口:容器端口)
# --name    给容器起名字
# nginx     使用的镜像
​
# 查看运行中的容器
docker ps
​
# 查看所有容器(包括停止的)
docker ps -a
​
# 停止容器
docker stop mynginx
​
# 启动已停止的容器
docker start mynginx
​
# 重启容器
docker restart mynginx
​
# 删除容器
docker rm mynginx
​
# 强制删除运行中的容器
docker rm -f mynginx

3. 进入容器内部(调试必备)

复制代码
# 进入容器的命令行(类似SSH)
docker exec -it mynginx /bin/bash
​
# 解释:
# -i        交互模式
# -t        分配伪终端
# /bin/bash 使用的shell

4. 查看日志

复制代码
# 查看容器日志
docker logs mynginx
​
# 实时跟踪日志(类似tail -f)
docker logs -f mynginx

五、实战:部署一个网站(5分钟上手)

步骤1:运行Nginx

复制代码
docker run -d -p 8080:80 --name myweb nginx

现在访问 http://localhost:8080 就能看到Nginx欢迎页了!

步骤2:修改网站内容

复制代码
# 进入容器
docker exec -it myweb /bin/bash
​
# 在容器内修改首页
echo "<h1>Hello Docker!</h1>" > /usr/share/nginx/html/index.html
​
# 退出容器
exit

刷新浏览器,页面已改变!

步骤3:保存你的修改(创建新镜像)

复制代码
# 将容器保存为新镜像
docker commit myweb mynginx:v1.0
​
# 查看新镜像
docker images

六、数据持久化(防止数据丢失)

问题 :删除容器,数据就没了! 解决:使用数据卷(Volume)

复制代码
# 方式1:挂载主机目录
docker run -d -p 8080:80 -v /home/user/html:/usr/share/nginx/html nginx
​
# 方式2:使用命名卷(Docker管理)
docker run -d -p 8080:80 -v mydata:/usr/share/nginx/html nginx

七、Docker Compose(多容器管理)

一个文件管理多个容器,比如:Web + 数据库

创建 docker-compose.yml

复制代码
version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - db_data:/var/lib/mysql
​
volumes:
  db_data:

启动:

复制代码
# 启动所有服务
docker-compose up -d
​
# 停止所有服务
docker-compose down

八、快速清理(释放空间)

复制代码
# 删除所有停止的容器
docker container prune
​
# 删除所有未使用的镜像
docker image prune
​
# 删除所有未使用的数据卷
docker volume prune
​
# 一键清理所有(慎用!)
docker system prune -a

九、常用镜像推荐

镜像 用途 快速运行命令
nginx Web服务器 docker run -d -p 80:80 nginx
mysql 数据库 docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql
redis 缓存 docker run -d -p 6379:6379 redis
ubuntu 测试环境 docker run -it ubuntu bash
python Python环境 docker run -it python:3.9 bash

十、学习路线图

复制代码
第1天:掌握基础命令(run, ps, stop, rm, exec)
    ↓
第2天:练习数据卷挂载(-v)
    ↓
第3天:学习Dockerfile打包自己的应用
    ↓
第4天:掌握Docker Compose多容器编排
    ↓
第5天:了解Docker网络、仓库等进阶内容

备忘清单(建议收藏)

复制代码
# ===== 快速启动常用服务 =====
# MySQL
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql
​
# Redis
docker run -d --name redis -p 6379:6379 redis
​
# Ubuntu测试环境
docker run -it --name ubuntu ubuntu bash
​
# ===== 常用查看命令 =====
docker ps           # 看运行中的容器
docker ps -a        # 看所有容器
docker images       # 看镜像
docker volume ls    # 看数据卷
docker network ls   # 看网络
​
# ===== 快速清理 =====
docker rm -f $(docker ps -aq)    # 删除所有容器
docker rmi $(docker images -q)   # 删除所有镜像
相关推荐
getapi2 小时前
FinalShell 连接 CentOS 7 文件管理失败修复教程
linux·运维·centos
程序员学习随笔2 小时前
ext4 原理篇(三):日志子系统 Journal 深度剖析 —— 如何保障数据一致性?
linux·c++
OxyTheCrack2 小时前
【C++】一篇文章悲观锁与乐观锁与其思想在C++语言中的应用
linux·开发语言·数据库·c++·笔记
国产化创客2 小时前
OpenClaw在树莓派全流程安装部署
linux·人工智能·github·agi
ZhengEnCi2 小时前
Linux基础技术专栏
linux
小峰编程2 小时前
二进制安装Nginx——详细
linux·运维·服务器·nginx·云原生
刚入坑的新人编程2 小时前
Linux-cgdb
linux·运维·服务器
桌面运维家2 小时前
Linux VHD 虚拟磁盘更新指南:高效管理与优化
linux·运维·数据库
进击切图仔2 小时前
Linux 挂载操作
linux·运维·服务器