15分钟速通Docker核心实战

目标:15 分钟内完成 Docker 安装、核心命令实操、Nginx 容器部署、自定义镜像构建,快速上手容器化核心流程。

前置准备(1 分钟)

  • 环境:Windows 10+ / MacOS / Linux(推荐 Ubuntu 20.04+)
  • 要求:网络通畅(需拉取镜像)、管理员 /root 权限
  • 目标:理解「镜像→容器」的核心逻辑,完成可访问的容器化应用

第一步:安装 Docker(5 分钟)

Docker 分为「Docker Engine(核心引擎)」和「Docker Desktop(桌面可视化工具,Windows/Mac 推荐)」,下面分系统演示最简安装方式:

1. Windows 10+ 安装

  1. 开启 WSL2(必须):

    • Win+X → 管理员身份运行「终端」,执行命令:

      bash 复制代码
      wsl --install  # 自动安装 WSL2 和 Ubuntu,需重启电脑
  2. 下载 Docker Desktop:

  3. 验证:打开终端,执行 docker --version,输出版本号即成功(如 Docker version 27.0.3, build 7d4bcdc)。

2. MacOS 安装

  1. 直接下载 Docker Desktop:https://www.docker.com/products/docker-desktop/
  2. 拖拽到应用文件夹,启动后等待图标变绿。
  3. 验证:终端执行 docker --version,输出版本号即成功。

3. Linux(Ubuntu 20.04+)安装

  1. 终端执行一键安装脚本(官方推荐):

    bash 复制代码
    sudo curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
  2. 启动 Docker 服务并设置开机自启:

    bash 复制代码
    sudo systemctl start docker
    sudo systemctl enable docker
  3. (可选)免 sudo 操作 Docker

    bash 复制代码
    sudo usermod -aG docker $USER  # 执行后注销重新登录
  4. 验证:docker --version,输出版本号即成功。

第二步:Docker 核心概念速览(1 分钟)

  • 镜像(Image):容器的「模板」,包含运行应用所需的代码、依赖、配置(如 Nginx 镜像包含 Nginx 程序和默认配置)。
  • 容器(Container):镜像的「运行实例」,是独立的运行环境(可理解为轻量级虚拟机,启动快、资源占用少)。
  • 仓库(Registry):存放镜像的平台(如 Docker Hub 是官方公共仓库,可拉取 Nginx、MySQL 等现成镜像)。

核心逻辑:拉取镜像(pull)→ 运行容器(run)→ 操作容器(start/stop/exec)

第三步:核心命令实战(3 分钟)

打开终端,逐行执行以下命令,感受 Docker 操作逻辑:

1. 查看 Docker 状态

bash 复制代码
docker info  # 查看 Docker 系统信息(验证是否正常运行)

2. 拉取官方 Nginx 镜像

bash 复制代码
docker pull nginx:latest  # 拉取最新版本的 Nginx 镜像(:latest 可省略)
docker images  # 查看本地已下载的镜像(能看到 nginx 镜像的 ID、标签等)

3. 运行 Nginx 容器(核心命令)

复制代码
docker run -d -p 80:80 --name my-first-nginx nginx
  • 参数解释:
    • -d:后台运行容器( detached 模式)
    • -p 80:80:端口映射(本地端口:容器端口,外部通过本地 80 端口访问容器)
    • --name my-first-nginx:给容器起名字(方便后续操作)
    • nginx:指定运行的镜像名称

4. 查看容器状态

bash 复制代码
docker ps  # 查看正在运行的容器(能看到 my-first-nginx 的状态、端口映射)
docker ps -a  # 查看所有容器(包括停止的)

5. 访问容器化 Nginx

  • 打开浏览器,输入 http://localhost(Windows/Mac)或 http://服务器IP(Linux),能看到 Nginx 欢迎页 → 部署成功!

6. 操作容器(启动 / 停止 / 删除)

bash 复制代码
docker stop my-first-nginx  # 停止容器
docker start my-first-nginx  # 启动已停止的容器
docker rm my-first-nginx  # 删除容器(需先停止,强制删除加 -f)
docker rmi nginx:latest  # 删除本地镜像(需先删除依赖该镜像的容器)

第四步:进阶实战:容器数据持久化(3 分钟)

默认情况下,容器内的文件修改会随容器删除而丢失,通过「目录挂载(-v 参数)」实现数据持久化(本地文件同步到容器)。

1. 本地创建目录和测试文件

bash 复制代码
# 创建本地目录(存放 Nginx 网页文件)
mkdir -p ./nginx-html
# 编写一个自定义网页(替换 Nginx 默认页面)
echo "<h1>Hello Docker! 这是我的第一个容器化应用</h1>" > ./nginx-html/index.html

2. 挂载本地目录运行 Nginx

bash 复制代码
docker run -d -p 80:80 -v $(pwd)/nginx-html:/usr/share/nginx/html --name nginx-with-volume nginx
  • -v $(pwd)/nginx-html:/usr/share/nginx/html:将本地 ./nginx-html 目录挂载到容器内 Nginx 的网页根目录。

3. 验证数据持久化

  • 浏览器访问 http://localhost,能看到自定义的「Hello Docker!」页面。
  • 修改本地 ./nginx-html/index.html 文件(比如添加一行文字),刷新浏览器 → 页面实时更新(无需重启容器)。
  • 执行 docker rm -f nginx-with-volume 删除容器后,本地 ./nginx-html 目录的文件依然存在 → 数据持久化成功!

第五步:自定义镜像(Dockerfile 入门)(2 分钟)

除了拉取官方镜像,还能通过 Dockerfile 构建自己的镜像(比如基于 Nginx 定制化网页)。

1. 创建 Dockerfile 文件

./nginx-html 同级目录下,创建 Dockerfile 文件(无后缀名),内容如下:

dockerfile

复制代码
# 基础镜像(基于官方 Nginx)
FROM nginx:latest

# 将本地 nginx-html 目录的文件复制到容器内 Nginx 根目录
COPY ./nginx-html /usr/share/nginx/html

# 暴露容器 80 端口(仅声明,不实际映射)
EXPOSE 80

2. 构建自定义镜像

bash 复制代码
docker build -t my-custom-nginx:v1 .
  • 参数解释:
    • -t my-custom-nginx:v1:给镜像打标签(名称:版本号)
    • .:指定 Dockerfile 所在目录(当前目录)

3. 运行自定义镜像

bash 复制代码
docker run -d -p 81:80 --name my-custom-nginx my-custom-nginx:v1
  • 浏览器访问 http://localhost:81,能看到自定义页面 → 自定义镜像构建成功!

总结:15 分钟核心回顾(1 分钟)

  1. 安装 :Docker Desktop(Windows/Mac)或 Docker Engine(Linux),docker --version 验证。
  2. 核心流程pull 镜像 → run 容器 → 访问应用
  3. 关键命令docker pull/run/ps/stop/rm/rmi/build
  4. 核心技巧 :端口映射(-p)、数据持久化(-v)、自定义镜像(Dockerfile)。

通过以上步骤,你已经掌握了 Docker 的核心用法!后续可尝试部署 MySQL、Redis 等应用(流程类似:拉取镜像→运行容器→配置映射),深入体会容器化的便捷性。

相关推荐
e***716738 分钟前
Linux下安装Nginx服务及systemctl方式管理nginx详情
linux·运维·nginx
nukix38 分钟前
Linux 查看应用端口情况
linux·运维·服务器
s***872738 分钟前
linux centos8 安装redis 卸载redis
linux·运维·redis
白日做梦Q40 分钟前
Linux/Windows系统下:traceroute 与 tracert 路由追踪命令全解析
linux·运维·windows
e***v35640 分钟前
IDEA+Docker一键部署项目SpringBoot项目
spring boot·docker·intellij-idea
小马爱打代码1 小时前
k8s:SpringBoot应用容器化
spring boot·容器·kubernetes
L.Ru1 小时前
ubuntu的使用
linux·运维·ubuntu
g***72701 小时前
Nginx 缓存清理
运维·nginx·缓存
lang201509281 小时前
什么是 Linux?
linux·运维·服务器