2026-06-15 · 技术笔记

Docker 入门笔记:从安装到第一个容器

Docker 的概念对新手来说确实有点绕。这篇笔记试着用最直白的方式解释清楚镜像、容器、Dockerfile 三者之间的关系,然后手把手跑通第一个 Nginx 容器。

一句话理解 Docker

Docker 就像一个轻量级的虚拟机,但它不虚拟整个操作系统,而是直接复用宿主机的内核。所以它启动快(秒级)、占用资源少(几十 MB),一台服务器可以轻松跑几十个容器。

三个核心概念

镜像(Image):相当于一个只读的模板,里面包含了运行某个应用所需的一切——代码、运行时、系统库、环境变量。可以把它理解为「安装包」。

容器(Container):镜像是静态的,运行起来的镜像就是容器。一个镜像可以启动多个容器实例,彼此隔离。容器是「正在运行的程序」。

Dockerfile:一个文本文件,描述了如何构建一个镜像。相当于「配方」——照着做就能做出一模一样的镜像。

打个比方:Dockerfile 是菜谱,镜像是做好的半成品,容器是端上桌的菜。

安装 Docker

Ubuntu 下用官方脚本一键安装:

curl -fsSL https://get.docker.com | sudo bash
sudo usermod -aG docker $USER   # 免 sudo 运行
sudo systemctl enable docker
sudo systemctl start docker

安装完成后执行 docker version 验证,看到 Client 和 Server 版本信息就说明成功了。

跑第一个容器:Nginx

不需要手动安装 Nginx,一条命令就能跑起来:

docker run -d --name my-nginx -p 8080:80 nginx:alpine

参数解释:

浏览器访问 http://服务器IP:8080,就能看到 Nginx 欢迎页。

常用命令速查

docker ps              # 查看运行中的容器
docker ps -a           # 查看所有容器(含已停止的)
docker stop my-nginx   # 停止容器
docker start my-nginx  # 启动容器
docker rm my-nginx     # 删除容器(须先停止)
docker images          # 查看本地镜像
docker logs my-nginx   # 查看容器日志
docker exec -it my-nginx sh  # 进入容器内部

用 Dockerfile 定制自己的镜像

如果想把一个静态网站打包进 Nginx 镜像,可以写一个简单的 Dockerfile:

FROM nginx:alpine
COPY ./html /usr/share/nginx/html

然后构建并运行:

docker build -t my-blog .
docker run -d --name blog -p 80:80 my-blog

总结

Docker 的核心价值在于「环境一致性」——开发、测试、生产环境跑的是同一个镜像,不会出现「我电脑上能跑啊」的问题。入门不难,掌握镜像和容器两个概念、熟练十来条命令,日常使用就基本够了。

Docker容器入门Nginx