Docker 简介与安装
🎯 引言
学完这篇文章,你能说清楚 Docker 是什么、容器解决的是什么问题,还能在自己的电脑上安装 Docker Desktop,并运行一个 Nginx 容器,在浏览器里看到它提供的页面。后续 MySQL、MongoDB 课程都会用 Docker 来安装数据库,这篇就是你的起点。
🧱 什么是 Docker
回忆一下你安装软件的经历:安装 MySQL 要下载安装包、配置环境变量、启动服务,换一台电脑可能又要重来一遍,还不一定能装上。Docker 就是用来解决这类「环境安装和配置」问题的工具。
Docker 里有一个核心概念叫容器(Container)。可以拿集装箱来类比:
- 码头上的集装箱把货物打包成标准箱子,不管里面装的是什么,吊车、货轮都能用同样的方式搬运它。
- Docker 的容器把软件和它的运行环境打包成标准单位,不管你的电脑是 macOS 还是 Windows,都能用同样的方式运行它。
比如你不需要在电脑上「安装」MySQL,只需要告诉 Docker:「帮我运行一个 MySQL 的容器」,一条命令就能得到一个在跑的 MySQL,删掉容器也不会在电脑上留下残余。
✨ 为什么用 Docker
对前端同学来说,Docker 有三个很实在的好处:
- 安装软件变成一条命令:MySQL、MongoDB、Nginx 这些服务端软件,都不用再折腾安装包和配置,一条
docker run就能跑起来。 - 环境一致:同一个容器在你的电脑、同事的电脑、服务器上行为一致,很少再出现「我电脑上明明是好的」这类问题。
- 干净隔离:软件运行在容器里,不污染你的系统。学完了、不需要了,删掉容器就行。
🛠 安装 Docker Desktop
学习阶段推荐使用 Docker Desktop,它是 Docker 官方提供的桌面应用,macOS 和 Windows 都支持。本文基于 Docker Desktop 4.x 版本编写和验证。
- 打开 Docker 官网(docker.com),下载 Docker Desktop 对应系统的安装包。
- 双击安装包按提示完成安装,macOS 会把 Docker 图标拖入「应用程序」。
- 启动 Docker Desktop,等待状态栏的鲸鱼图标变成稳定状态,表示 Docker 服务已就绪。
安装完成后,打开终端验证一下:
docker --version
能看到类似 Docker version 27.x.x 的输出,说明安装成功了。
🛠 运行第一个容器
环境就绪后,我们运行一个 Nginx 容器体验一下。Nginx 是一个常用的 Web 服务器软件,正常安装它需要下载、编译、配置,而用 Docker 只要一条命令:
docker run -d --name web -p 8080:80 nginx
这条命令各部分的意思是:
-d:让容器在后台运行。--name web:给容器起名叫web,方便后续操作。-p 8080:80:把容器的 80 端口映射到本机的 8080 端口,容器里的 Nginx 默认监听 80 端口。nginx:使用 Nginx 的镜像(可以理解为软件打包好的模板)。
第一次执行会自动下载镜像,耐心等待下载完成。然后打开浏览器访问 http://localhost:8080,能看到「Welcome to nginx!」的页面,说明你的第一个容器已经在正常工作了。
体验完可以把它清理掉:
docker stop web
docker rm web
先停止、再删除,电脑上不留任何残余,这就是 Docker 干净隔离的体现。
🧾 小节总结
- Docker 是解决「环境安装和配置」问题的工具,核心是容器。
- 容器像集装箱,把软件和运行环境打包成标准单位,在哪台电脑上都能以同样方式运行。
- Docker 的好处:安装软件一条命令、环境一致、干净隔离不污染系统。
- 学习阶段用 Docker Desktop,装好后用
docker --version验证。 - 用
docker run -d --name web -p 8080:80 nginx运行 Nginx 容器,浏览器访问http://localhost:8080验证。
❓ 知识问答
Q1:Docker 是虚拟机吗?
不是。虚拟机要模拟一整套操作系统,启动慢、占用资源多。容器直接共用电脑的操作系统核心,启动快、占用少,你可以理解为一种更轻量的隔离方式。
Q2:什么是镜像?
镜像(Image)是软件的打包模板,容器是根据镜像运行起来的实例。可以类比:镜像像一个类,容器像由这个类 new 出来的对象。下一篇会详细讲两者的关系。
Q3:macOS 用 Intel 芯片和 M 系列芯片,安装有区别吗?
下载安装包时注意选择对应芯片的版本即可(官网一般会帮你自动识别),安装后使用方式完全一样。
Q4:删掉容器后,再运行一次 docker run 会重新下载镜像吗?
不会。镜像下载后会缓存在本地,再次运行会直接使用缓存,秒级启动。除非你用 docker rmi 把镜像也删了。
Q5:访问 localhost:8080 失败怎么办?
先执行 docker ps 看看 web 容器是否在运行。如果列表是空的,说明容器没启动成功,重新执行 docker run 命令并留意终端的报错信息。
🧪 小练习
- 把 Nginx 映射到本机的 3000 端口再运行一次,浏览器访问
http://localhost:3000验证,完成后清理容器:
# 提示:修改 -p 参数,并换一个容器名
# 请在这里编写命令
- 执行
docker run hello-world,观察终端输出,理解 Docker 运行一个容器时「拉取镜像、创建容器、执行程序」的完整过程。
🎉 恭喜你已经掌握了 Docker 的基本概念,并成功运行了第一个容器!下一篇我们深入学习镜像和容器这两个核心概念,以及它们对应的常用命令。
