Docker 容器入门指南
Docker 已经成为现代软件开发和部署的必备工具。通过容器化技术,你可以轻松地打包、分发和运行应用程序,无需担心环境差异。本指南将带你从零开始掌握 Docker 的核心概念和常用操作。
什么是 Docker?
Docker 是一个开源的容器化平台,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中。与虚拟机不同,Docker 容器共享宿主机的操作系统内核,因此启动更快、资源占用更少。
- 镜像(Image):容器的蓝图,包含运行应用所需的一切。
- 容器(Container):镜像的运行实例,相互隔离。
- 仓库(Registry):存储和分发镜像的地方,如 Docker Hub。
安装 Docker
在 Ubuntu 系统上一键安装 Docker:
1 | curl -fsSL https://get.docker.com | bash |
安装完成后,验证是否成功:
1 | docker --version |
常用命令速查
镜像操作
1 | docker pull nginx:latest # 拉取镜像 |
容器操作
1 | docker run -d -p 8080:80 --name web nginx # 启动容器 |
编写 Dockerfile
Dockerfile 是构建镜像的配方。以下是一个 Node.js 应用的典型示例:
1 | FROM node:18-alpine |
最佳实践提示:
- 使用
.dockerignore文件排除node_modules等不需要的文件。 - 合并 RUN 指令减少镜像层数。
- 优先使用官方基础镜像(如
node:18-alpine)。
Docker Compose 多容器编排
对于需要多个服务协作的项目,Docker Compose 可以通过一个 YAML 文件定义所有服务:
1 | version: '3.8' |
一键启动所有服务:
1 | docker-compose up -d |
实用技巧
- 清理无用资源:定期运行
docker system prune -a清理未使用的镜像、容器和网络。 - 查看日志:使用
docker logs -f container_name实时跟踪容器日志。 - 数据持久化:通过
-v /host/path:/container/path挂载卷来持久化数据。 - 网络模式:使用
--network host共享宿主机网络,或创建自定义网络实现容器间通信。
总结
Docker 极大地简化了应用的部署流程:"一次构建,到处运行"。掌握上述基础操作后,你可以进一步学习 Docker Swarm、Kubernetes 等容器编排工具,构建更强大的基础设施。
容器化是云原生时代的基石,现在就开始你的 Docker 之旅吧!