Docker 入门:从安装到运行第一个容器
最近在工作中频繁接触容器化部署,发现身边还有不少同学对 Docker 的理解仍停留在「听说过」的阶段。今天结合自己的实践经验,写一篇真正面向新手的 Docker 入门指南:从安装到运行第一个容器,帮你把 Docker 真正用起来。
一、为什么要用 Docker
在没有 Docker 之前,部署一个应用常常是这样的:开发机上跑得好好的,到了测试环境就各种报错——依赖版本不一致、缺系统库、配置文件路径不同。大家戏称「在我机器上是好的」。
Docker 用容器技术把「应用 + 依赖 + 运行环境」打包成一个镜像,不管在谁的机器上,只要 Docker 能跑,镜像就能跑,彻底解决「环境不一致」这个老大难问题。
二、四个核心概念
- 镜像(Image):只读的模板,比如一个打包好的 Nginx、MySQL。镜像是分层存储的,每一层记录一次文件变化。
- 容器(Container):镜像运行起来的实例。可以把它理解成一个轻量级的「沙盒进程」,秒级启动。
- 仓库(Registry):存放镜像的地方,类似代码的 Git 仓库,官方的叫 Docker Hub。
- Dockerfile:用文本描述「如何构建镜像」的脚本,是自己制作镜像的起点。
记住一句话:镜像是类,容器是对象。
三、安装 Docker
Ubuntu / Debian 上一条命令即可完成安装:
curl -fsSL https://get.docker.com | sh
安装完成后执行 docker version,能看到客户端和服务端版本信息就说明装好了。Windows 和 macOS 用户可以直接下载 Docker Desktop,图形化安装更省心。
四、常用命令速览
docker pull nginx # 拉取镜像
docker images # 查看本地镜像
docker run -d -p 8080:80 --name my-nginx nginx # 后台运行容器
docker ps # 查看运行中的容器
docker logs my-nginx # 查看容器日志
docker exec -it my-nginx bash # 进入容器内部
docker stop my-nginx # 停止容器
docker rm my-nginx # 删除容器
docker rmi nginx # 删除镜像
五、实战:运行第一个容器
执行下面这条命令:
docker run -d -p 8080:80 --name my-nginx nginx
参数解释:-d 表示后台运行,-p 8080:80 把容器的 80 端口映射到本机 8080 端口,--name 给容器起个名字。打开浏览器访问 http://localhost:8080,看到 Nginx 欢迎页就说明成功了!
六、写一个自己的 Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
执行 docker build -t myapp:1.0 . 构建镜像,再 docker run -d -p 5000:5000 myapp:1.0 运行——你的应用就完成容器化了。
七、新手避坑指南
- 容器里的数据不要当宝贝:容器删了,里面写的数据就没了。重要数据一定要用
-v挂载卷。 - 注意 -p 的端口顺序:
-p 本机端口:容器端口,写反了访问不通。 - 及时清理:
docker system prune可以清理已停止的容器和悬空镜像,磁盘告急时很好用。 - 一个容器只做一件事:不要把 MySQL、Redis、应用全塞进一个容器,拆开更利于维护。
八、小结
Docker 的学习曲线其实很平缓:理解镜像和容器的关系,记住十来个常用命令,再亲手跑通一个 Nginx 和一个自己的应用,就算是入门了。下一步可以继续学习 Docker Compose 编排多容器,以及镜像体积优化。希望这篇指南能帮你迈出容器化的第一步!
- 点赞
- 收藏
- 关注作者
评论(0)