675 字
3 分钟
Docker 新手入门:从安装到第一个可用容器
本文地址:/posts/docker-beginner-guide-2026/
如果你是第一次接触 Docker,这篇文章会带你从 0 到 1 跑通完整流程:
- 安装 Docker
- 理解镜像和容器
- 跑起第一个服务
- 掌握常用命令
- 用
Dockerfile打包自己的应用 - 用
Docker Compose管理多服务
1. Docker 是什么
可以把 Docker 理解成“标准化打包 + 统一运行环境”。
- 镜像(Image):应用模板,类似“安装包”
- 容器(Container):镜像运行后的实例,类似“进程 + 隔离环境”
- 仓库(Registry):存放镜像的地方,最常见是 Docker Hub
一句话:镜像是静态模板,容器是动态实例。
2. 安装 Docker
Windows / macOS
安装 Docker Desktop,安装完成后在终端执行:
docker --versiondocker compose version如果都能输出版本号,说明安装成功。
Linux(Ubuntu 示例)
sudo apt-get updatesudo apt-get install -y docker.io docker-compose-pluginsudo systemctl enable --now dockerdocker --versiondocker compose version可选:把当前用户加入 docker 组,避免每次都用 sudo:
sudo usermod -aG docker $USERnewgrp docker3. 第一个容器:Hello World
docker run hello-world这条命令会自动完成:
- 本地没有镜像时先拉取
hello-world镜像 - 创建并运行一个容器
- 输出测试信息后退出
4. 第一个“可访问”的服务:Nginx
docker run -d --name my-nginx -p 8080:80 nginx:alpine参数说明:
-d:后台运行--name my-nginx:容器名-p 8080:80:把宿主机 8080 映射到容器 80
浏览器访问 http://localhost:8080,看到欢迎页表示成功。
常用操作:
docker psdocker logs my-nginxdocker stop my-nginxdocker start my-nginxdocker rm my-nginx5. 数据持久化:Volume
容器删掉后,容器内数据通常也会消失。要持久化请使用 Volume:
docker volume create nginx-datadocker run -d --name my-nginx-2 -p 8081:80 -v nginx-data:/usr/share/nginx/html nginx:alpine查看 Volume:
docker volume lsdocker volume inspect nginx-data6. 写一个最小 Dockerfile
目录结构:
docker-demo/ ├─ index.html └─ Dockerfileindex.html:
<!doctype html><html> <head> <meta charset="UTF-8" /> <title>My Docker Site</title> </head> <body> <h1>Hello Docker</h1> <p>It works.</p> </body></html>Dockerfile:
FROM nginx:alpineCOPY index.html /usr/share/nginx/html/index.html构建并运行:
docker build -t my-site:v1 .docker run -d --name my-site -p 8090:80 my-site:v1访问 http://localhost:8090 查看效果。
7. 用 Docker Compose 管理服务
当服务变多时,建议使用 Compose:
services: web: image: nginx:alpine container_name: compose-nginx ports: - "8088:80" volumes: - ./html:/usr/share/nginx/html:ro执行:
docker compose up -ddocker compose psdocker compose logs -fdocker compose down8. 新手常用命令清单
docker imagesdocker ps -adocker pull nginx:alpinedocker exec -it my-nginx shdocker stop <container>docker rm <container>docker rmi <image>docker system dfdocker system prune -f9. 常见问题排查
端口占用
报错 port is already allocated,换端口即可,例如 -p 8099:80。
容器反复重启
先看日志:
docker logs <container-name>拉取镜像很慢
可配置镜像加速源,或切换网络后重试。
10. 下一步建议
- 学 Docker 网络(bridge / host / overlay)
- 学多阶段构建(Multi-stage Build)
- 用 Compose 管理数据库 + API + 前端
- 再进阶到 Kubernetes
Docker 新手入门:从安装到第一个可用容器
/posts/docker-beginner-guide-2026/ 评论