动手实践:安装Docker并运行你的第一个Web应用
动手实践:安装Docker并运行你的第一个Web应用

引言
在上一篇文章《告别“在我电脑上能跑”:Docker入门与核心概念解析》中,我们深入探讨了容器化的概念,理解了 Docker 如何通过镜像、容器和仓库这三大核心要素,解决了“环境不一致”的顽疾。我们还通过运行 hello-world 容器,初步感受了 Docker 的魔力。
理论是基石,实践是桥梁。本篇文章将带领你从零开始,在自己的电脑上安装 Docker Desktop,并手把手教你如何运行一个真实的 Web 应用容器。通过本篇的学习,你将:
- 了解 Docker Desktop 的安装要求和步骤。
- 掌握 Docker 最常用的镜像和容器管理命令。
- 亲手部署一个 Nginx Web 服务器,并通过浏览器访问它。
准备好了吗?让我们一起踏上 Docker 的实践之旅!
第一章:为你的操作系统选择合适的Docker版本
在开始安装之前,我们需要了解 Docker 的不同版本以及它们适用的场景。
1.1 Docker Desktop vs. Docker Engine
- Docker Desktop:这是 Docker 官方为 Windows 和 macOS 用户提供的一站式解决方案。它不仅包含了 Docker Engine(Docker 的核心运行时),还集成了 Kubernetes、Docker Compose、Credential Helper 以及一个友好的图形化用户界面 (GUI)。对于个人开发者、学习者以及在本地进行开发和测试的用户来说,Docker Desktop 是最佳选择。
- Docker Engine:这是 Docker 的核心组件,一个轻量级的运行时和打包工具。它主要用于 Linux 服务器环境,通常通过命令行进行操作。如果你是在 Linux 服务器上部署生产环境应用,或者希望对 Docker 有更底层的控制,那么 Docker Engine 是你的选择。
本文将重点介绍 Docker Desktop 的安装,因为它更适合大多数桌面用户。
1.2 系统要求检查
在安装 Docker Desktop 之前,请确保你的系统满足以下最低要求:
- Windows:
- Windows 10 64位:Home、Pro、Enterprise 或 Education 版本(2004 版本或更高)。
- 必须开启 WSL 2 (Windows Subsystem for Linux 2)。这是 Docker Desktop 在 Windows 上运行的关键技术。
- 至少 4GB RAM。
- 开启硬件虚拟化(通常在 BIOS/UEFI 设置中)。
- macOS:
- macOS 10.15 “Catalina” 或更高版本。
- 至少 4GB RAM。
- 根据你的 Mac 芯片类型(Intel 或 Apple Silicon),选择对应的安装包。
第二章:手把手安装 Docker Desktop
2.1 Windows 平台安装指南
对于 Windows 用户,安装 Docker Desktop 最关键的一步是确保 WSL 2 已正确配置。
步骤一:开启 WSL 2
WSL 2 允许 Windows 原生运行 Linux 二进制文件,为 Docker Desktop 提供了高性能的 Linux 环境。
- 以管理员身份打开 PowerShell 或命令提示符。
- 执行以下命令安装 WSL 2(如果尚未安装):
这个命令会自动安装 WSL 所需的组件,包括 Ubuntu Linux 发行版。wsl --install - 设置 WSL 2 为默认版本:
如果遇到错误,可能需要手动更新 WSL 内核。请访问微软官方文档获取最新指引。wsl --set-default-version 2
步骤二:下载并安装 Docker Desktop
- 访问 Docker 官方网站下载 Docker Desktop for Windows 安装包:
https://www.docker.com/products/docker-desktop - 运行下载的安装程序。
- 在安装向导中,确保勾选了“Use WSL 2 instead of Hyper-V (recommended)”选项。 这是确保 Docker Desktop 正常运行的关键。
- 按照提示完成安装。安装完成后,可能需要重启电脑。
步骤三:启动与验证
- 重启电脑后,从桌面快捷方式或开始菜单启动 Docker Desktop。
- 等待 Docker Desktop 启动完成。 你会看到系统托盘(右下角)的鲸鱼图标从灰色变为绿色,表示 Docker Engine 正在运行。
- 打开你的终端(PowerShell 或 CMD),输入以下命令进行验证:
如果docker --version docker psdocker --version显示了 Docker 版本信息,docker ps显示了空的容器列表(或只显示标题行),则说明 Docker Desktop 已成功安装并运行。
2.2 macOS 平台安装指南
对于 macOS 用户,安装过程相对简单。
步骤一:下载 Docker Desktop for Mac
- 访问 Docker 官方网站下载 Docker Desktop for Mac 安装包:
https://www.docker.com/products/docker-desktop
请务必根据你的 Mac 芯片类型(Intel 或 Apple Silicon)选择正确的安装包。
步骤二:安装
- 双击下载的
.dmg文件。 - 将 Docker.app 拖拽到“应用程序 (Applications)”文件夹中。
- 关闭安装窗口并弹出
.dmg文件。
步骤三:启动与验证
- 从“应用程序”文件夹或 Launchpad 启动 Docker。
- 首次启动时,Docker Desktop 会请求必要的权限。 按照提示进行授权。
- 等待 Docker Desktop 启动完成。 系统菜单栏的鲸鱼图标会从灰色变为绿色。
- 打开终端 (Terminal.app),输入以下命令进行验证:
如果显示了 Docker 版本信息和空的容器列表,则说明 Docker Desktop 已成功安装并运行。docker --version docker ps
第三章:Docker 常用命令入门
现在 Docker 已经安装好了,让我们来学习一些最常用的 Docker 命令,它们将是你管理镜像和容器的“瑞士军刀”。
3.1 镜像相关命令
docker images:列出本地所有已下载的镜像。docker images # 示例输出: # REPOSITORY TAG IMAGE ID CREATED SIZE # ubuntu 20.04 a2a15febcdf2 2 weeks ago 77.8MB # nginx latest 0e611796e381 3 weeks ago 142MBdocker pull [镜像名]:[标签]:从 Docker Hub 或其他仓库拉取(下载)一个镜像到本地。 如果不指定标签,默认拉取latest版本。docker pull ubuntu:latest docker pull redisdocker rmi [镜像ID或镜像名]:删除一个或多个本地镜像。 只有当没有容器使用该镜像时才能删除。docker rmi ubuntu:latest
3.2 容器相关命令
docker run [选项] [镜像名]:这是最核心的命令,用于创建并启动一个容器。docker run -it ubuntu /bin/bash:创建一个基于ubuntu镜像的容器,并进入其交互式终端。
docker ps:列出所有正在运行的容器。docker ps # 示例输出: # CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # ... (如果正在运行容器,会显示在这里)docker ps -a:列出所有容器,包括已停止的。docker stop [容器ID或容器名]:停止一个运行中的容器。docker stop my-nginx-containerdocker start [容器ID或容器名]:启动一个已停止的容器。docker start my-nginx-containerdocker rm [容器ID或容器名]:删除一个或多个容器。 容器必须先停止才能删除。docker rm my-nginx-containerdocker logs [容器ID或容器名]:查看容器的日志输出。 对于后台运行的容器,这是排查问题的重要工具。docker logs my-nginx-container
第四章:实战:部署你的第一个Web应用容器
现在,让我们运用所学知识,部署一个真实的 Web 应用——Nginx 服务器。
目标:拉取并运行一个 Nginx 容器,并通过浏览器访问它。
步骤一:拉取 Nginx 镜像
首先,我们需要从 Docker Hub 拉取 Nginx 的官方镜像。
docker pull nginx:latest
执行此命令后,Docker 会从远程仓库下载 Nginx 镜像到你的本地。你可以通过 docker images 命令确认它已下载成功。
步骤二:运行 Nginx 容器
接下来,我们将基于 Nginx 镜像创建一个并启动一个容器。
docker run --name my-first-nginx -d -p 8080:80 nginx
让我们详细解释一下这个命令的各个参数:
--name my-first-nginx:为你的容器指定一个易于识别的名字,这里我们命名为my-first-nginx。-d:--detach的缩写,表示让容器在后台运行。这样你就可以关闭终端,容器仍然会在后台继续运行。-p 8080:80:--publish的缩写,这是端口映射。它告诉 Docker 将宿主机(你的电脑)的8080端口映射到容器内部的80端口。Nginx 默认在容器的 80 端口提供服务,通过这个映射,你就可以通过访问你电脑的 8080 端口来访问容器内的 Nginx 服务了。nginx:这是我们要用来创建容器的镜像名称。
执行命令后,你会看到一串容器 ID,表示容器已成功启动。你可以使用 docker ps 命令来查看正在运行的容器,确认 my-first-nginx 容器是否在列表中。
步骤三:验证
现在,打开你常用的浏览器,在地址栏输入 http://localhost:8080 并回车。
如果你看到了 Nginx 的欢迎页面(通常显示 “Welcome to nginx!”),那么恭喜你!你已经成功地在 Docker 容器中部署并运行了你的第一个 Web 应用!
步骤四:清理
为了保持环境整洁,我们来停止并删除刚才创建的容器。
- 停止容器:
你可以再次运行docker stop my-first-nginxdocker ps确认容器已不在运行列表中。 - 删除容器:
现在,docker rm my-first-nginxdocker ps -a应该也看不到my-first-nginx了。
总结
通过本篇文章的动手实践,你已经成功地:
- 在你的 Windows 或 macOS 系统上安装了 Docker Desktop。
- 掌握了
docker images、docker pull、docker run、docker ps、docker stop、docker rm等核心 Docker 命令。 - 亲手部署了一个 Nginx Web 服务器,并通过端口映射使其对外提供服务。
你已经迈出了容器化世界坚实的第一步!在下一篇文章 《Dockerfile终极指南:为你的应用量身打造专属镜像》 中,我们将学习如何将你自己的应用程序打包成 Docker 镜像,让你的应用也能享受容器化的便利。
继续探索,你的云原生之旅才刚刚开始!
