Appearance
Docker零基础入门教程
这篇文档面向“第一次上手 Docker”的场景,目标不是讲全,而是先跑通最小闭环:拉镜像、起容器、看状态、进容器、停容器、删容器。
1. 先建立最小认知
刚接触 Docker 时,先只记住三件事:
1.1 镜像(Image)
镜像可以理解成“运行模板”。
例如:
ubuntunginxmysqlmcr.microsoft.com/dotnet/aspnet
它本身不运行,但可以拿来启动容器。
1.2 容器(Container)
容器是镜像运行起来后的实例。
你真正访问、进入、停止、删除的对象,通常是容器。
1.3 仓库(Registry / Repository)
仓库是存镜像的地方。
最常见的是:
- Docker Hub
- Harbor
- 阿里云镜像仓库
2. 安装好 Docker 后先验证
安装完成后,先看版本:
bash
docker --version
docker compose version然后跑一个最经典的测试:
bash
docker run --rm hello-world如果能正常输出欢迎信息,说明:
- Docker Engine 正常
- 镜像拉取正常
- 容器运行正常
3. 第一次拉镜像
比如我们想拉一个 nginx 镜像:
bash
docker pull nginx:latest拉取完成后,查看本机镜像:
bash
docker images典型输出里会有:
- 仓库名
- tag
- 镜像 ID
- 创建时间
- 大小
4. 第一次启动容器
4.1 前台运行一个临时容器
bash
docker run --rm -it ubuntu:22.04 bash这条命令做了几件事:
run:启动容器--rm:退出后自动删除-it:进入交互式终端ubuntu:22.04:指定镜像bash:容器启动后执行的命令
这很适合临时测试。
4.2 后台运行一个服务容器
bash
docker run -d --name my-nginx -p 8080:80 nginx:latest这条命令表示:
- 后台启动一个名为
my-nginx的容器 - 宿主机
8080端口映射到容器80端口
然后你可以访问:
text
http://127.0.0.1:80805. 容器最常用的查看命令
5.1 查看正在运行的容器
bash
docker ps5.2 查看所有容器(包括已退出)
bash
docker ps -a5.3 查看容器日志
bash
docker logs my-nginx
docker logs -f my-nginx-f 适合实时跟日志。
6. 进入容器内部
如果容器已经在运行,想进容器里看看:
bash
docker exec -it my-nginx sh如果是 Ubuntu / Debian 这类完整镜像,也常用:
bash
docker exec -it my-container bash经验上:
- Alpine 镜像更常见
sh - Ubuntu / Debian 更常见
bash
7. 停止、启动、重启、删除
7.1 停止容器
bash
docker stop my-nginx7.2 启动已存在的容器
bash
docker start my-nginx7.3 重启容器
bash
docker restart my-nginx7.4 删除容器
bash
docker rm my-nginx如果容器正在运行,先停再删;或者强制删除:
bash
docker rm -f my-nginx8. 删除镜像
bash
docker rmi nginx:latest注意:
删除镜像前,必须先删除基于这个镜像创建出来的容器。
否则会报“image is being used”之类的错误。
9. 镜像导出与导入
如果你要在没有仓库、或者网络不通的环境里迁移镜像,可以这样做。
9.1 导出镜像
bash
docker save -o nginx.tar nginx:latest9.2 导入镜像
bash
docker load -i nginx.tar这在以下场景很有用:
- 内网环境
- 生产环境不方便联网
- 做镜像备份
10. 一个最小完整流程
把前面串起来,第一次上手 Docker 可以直接按下面跑一遍:
bash
# 1. 拉镜像
docker pull nginx:latest
# 2. 起容器
docker run -d --name my-nginx -p 8080:80 nginx:latest
# 3. 查看运行状态
docker ps
# 4. 查看日志
docker logs my-nginx
# 5. 停止容器
docker stop my-nginx
# 6. 删除容器
docker rm my-nginx
# 7. 删除镜像(可选)
docker rmi nginx:latest只要这套命令你能自己从头到尾跑通,对 Docker 的最小使用闭环就算建立起来了。
11. 零基础阶段最容易踩的坑
11.1 把镜像和容器混为一谈
镜像是模板,容器是实例。 删容器不等于删镜像,删镜像也不等于删容器。
11.2 容器内用 localhost 访问数据库
容器里写 localhost,指向的是当前容器自己,不是另一个容器,也不是宿主机。
如果多个服务通过 Compose 组网,通常要用服务名访问。
11.3 容器删了,数据也没了
如果没有做 volume 挂载,容器删掉后,容器内改动通常也就跟着没了。
所以数据库、上传文件、日志等数据类目录,后面都要学会挂载出来。
11.4 一开始就追求“全会”
Docker 命令很多,但入门阶段只要先掌握:
pullimagesrunpslogsexecstoprm
这几个就够用了。
12. 下一步怎么学
掌握这篇后,建议继续看:
- Docker运行容器镜像指令 把高频命令表收熟
- Docker运行环境配置指南 宿主机安装、镜像加速、Daemon 配置
- Docker容器化部署实战 把镜像、Compose、Nginx、数据库串起来
13. 一句话总结
零基础阶段先不要试图理解 Docker 的全部生态,只要把“拉镜像 -> 起容器 -> 看状态 -> 进容器 -> 停删容器”这个最小闭环跑通,后面很多概念都会自然落地。
