**引言:什么是容器?为什么需要它?**
想象一下,你开发了一个Web应用,在你的电脑上运行完美,但到了服务器上却因为操作系统、库版本等环境差异而崩溃。**容器**技术就是为了解决这个"在我的机器上没问题"的经典难题而生。
* **容器**:一个轻量级、可执行的独立软件包,包含运行应用所需的一切:代码、运行时、系统工具、系统库和设置。它将自己的进程、文件系统和网络与主机及其他容器隔离开来,但又共享主机的操作系统内核,因此比传统虚拟机(VM)更加高效和快速。
* **Docker**:是目前最流行的容器化平台,它简化了容器的创建、部署和管理。
本文将以Docker为例,手把手带你完成在Windows和macOS上的安装,并演示你的第一个容器化应用。
**第一部分:安装Docker Desktop**
Docker Desktop是为个人开发者设计的集成环境,包含了运行Docker所需的所有核心组件。
**在Windows上安装**
**系统要求:**
* Windows 10 64位(专业版、企业版或教育版)或 Windows 11。
* 需要启用 **WSL 2**(适用于Linux的Windows子系统)功能。Docker可以运行在WSL 2内,获得更好的性能。
**安装步骤:**
- **下载安装程序**
访问 Docker 官网 ([https://www.docker.com/products/docker-desktop\](https://www.docker.com/products/docker-desktop)),下载适用于Windows的Docker Desktop安装程序。
- **运行安装程序**
双击下载的 `Docker Desktop Installer.exe`。安装过程中,确保勾选 **"Use WSL 2 instead of Hyper-V"** 选项。
- **完成安装并重启**
安装完成后,Docker Desktop会自动启动。你可能会被要求重启电脑以完成安装。
- **验证安装**
重启后,在命令行(CMD或PowerShell)中输入以下命令:
```bash
docker --version
```
如果看到类似 `Docker version 24.0.6` 的输出,说明安装成功!
**在macOS上安装**
**系统要求:**
* 搭载Apple芯片(如M1/M2)或Intel芯片的Mac。
* macOS 10.15或更高版本。
**安装步骤:**
- **下载安装程序**
访问 Docker 官网,下载适用于Apple芯片或Intel芯片的Docker Desktop for Mac。
- **安装应用**
将下载的 `Docker.dmg` 文件打开,然后将Docker图标拖拽到"应用程序"文件夹中。
- **首次运行**
在"应用程序"文件夹中,双击Docker应用图标启动它。你需要授权它运行,因为它需要提升的权限来创建网络接口和卷。
- **验证安装**
打开终端(Terminal),输入以下命令:
```bash
docker --version
```
确认版本号输出,表示安装成功。
**第二部分:核心概念图解**
在运行第一个容器前,让我们通过一张图理解Docker的三个核心概念:
**`Dockerfile` -> `Image` -> `Container`**

* **镜像**:一个**只读的模板**,用于创建容器。它包含了一套文件系统及其运行参数,比如一个Ubuntu镜像、一个Nginx镜像。你可以把它理解为一个软件的"安装包"或"蓝图"。
* **容器**:是镜像的一个**运行实例**。你可以创建、启动、停止、删除容器。容器与镜像的关系,就像是面向对象编程中**对象与类的关系**。
* **Dockerfile**:一个文本文件,里面包含了一系列用于构建镜像的指令(如基于哪个基础镜像、复制文件、运行命令等)。
**第三部分:实战:运行你的第一个容器**
现在,让我们运行一个经典的"Hello World"容器来测试整个环境。
-
**打开终端**(在Windows上是PowerShell或CMD,在macOS上是Terminal)。
-
**拉取并运行Hello World镜像**:
输入以下命令并回车:
```bash
docker run hello-world
```
- **观察发生了什么**:
* Docker客户端会连接至Docker守护进程。
* 守护进程发现本地没有 `hello-world` 这个镜像,于是自动从Docker Hub(一个公共的镜像仓库)**拉取**它。
* 拉取完成后,守护进程根据这个镜像**创建并运行**一个容器。
* 容器执行它内部预设的命令,在终端打印出一段欢迎信息,然后**退出**。
当你看到 **"Hello from Docker!"** 这条消息时,恭喜你!你的第一个容器已经成功运行完毕。
**第四部分:更进一步:运行一个Nginx Web服务器**
让我们运行一个更有用的容器------一个Nginx Web服务器。
- **运行Nginx容器**:
在终端中输入以下命令:
```bash
docker run -d -p 8080:80 --name my-website nginx
```
* `-d`:在"后台"(分离模式)运行容器。
* `-p 8080:80`:将**主机的8080端口**映射到**容器的80端口**(Nginx默认端口)。
* `--name my-website`:给容器起一个名字,方便管理。
* `nginx`:要使用的镜像名。
- **访问你的网站**:
打开你的浏览器,输入 `http://localhost:8080`。你将看到Nginx的默认欢迎页面!这说明一个完整的Web服务器已经在容器中运行起来了。
- **查看运行中的容器**:
在终端中运行:
```bash
docker ps
```
你可以看到名为 `my-website` 的容器正在运行。
- **停止并移除容器**(可选):
```bash
停止容器
docker stop my-website
移除容器
docker rm my-website
```
**总结**
通过本文,你已经完成了:
-
✅ 在Windows或macOS上成功安装了Docker Desktop。
-
✅ 理解了镜像、容器和Dockerfile的核心关系。
-
✅ 运行了第一个测试容器 (`hello-world`)。
-
✅ 部署了一个实用的Nginx Web服务器容器。
容器化技术的大门已经为你敞开。接下来,你可以学习如何编写自己的 `Dockerfile` 来容器化你的应用,使用 `docker-compose` 来编排多个容器,探索更多的官方镜像,从而彻底革新你的开发与部署流程。