1. 什么是 Docker?
Docker 是一种基于容器的虚拟化技术,它允许开发者以轻量级、高效的方式打包、分发和运行应用程序。相较于传统的虚拟机,Docker 提供了一种更为灵活、占用资源更少的解决方案。
Docker 的核心优势
- 环境一致性:开发、测试、生产环境保持一致,避免“我的机器可以跑,服务器却不行”的问题。
- 资源效率:容器共享宿主机的操作系统,相较虚拟机,启动更快,占用更少的资源。
- 易于扩展:可以快速部署和扩展应用,支持微服务架构。
- 增强安全性:容器相互隔离,限制了应用程序之间的干扰。
2. 安装 Docker
Docker 支持 Windows、macOS 和 Linux,下面分别介绍其安装步骤。
Windows/macOS 安装 Docker Desktop
- 访问 Docker 官网 下载 Docker Desktop。
- 安装并启动 Docker Desktop。
- 在终端输入以下命令验证安装是否成功:
docker --version
- 运行一个测试容器,确保 Docker 可以正常工作:
docker run hello-world
Linux 安装 Docker
在 Linux 发行版(如 Ubuntu)上安装 Docker:
curl -fsSL https://get.docker.com | bash
sudo systemctl start docker
sudo systemctl enable docker
验证 Docker 是否安装成功:
docker run hello-world
3. Docker 的基本概念
- 镜像 (Image):Docker 镜像包含应用程序及其依赖,可以用于创建容器。
- 容器 (Container):容器是镜像的运行实例,可独立运行、停止和删除。
- 仓库 (Registry):用于存储和管理 Docker 镜像,如 Docker Hub。
4. Docker 基本命令
列出本地镜像:
docker images
从 Docker Hub 拉取镜像:
docker pull ubuntu
运行一个 Ubuntu 容器:
docker run -it ubuntu bash
查看当前运行的容器:
docker ps
停止一个容器:
docker stop <CONTAINER_ID>
5. Dockerfile 与自定义镜像
Dockerfile 是 Docker 镜像的构建脚本,以下是一个示例:
FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
解析:
FROM python:3.9
:指定基础镜像。WORKDIR /app
:设置工作目录。COPY . .
:复制项目文件。RUN pip install -r requirements.txt
:安装依赖。CMD ["python", "app.py"]
:设置默认启动命令。
构建自定义镜像:
docker build -t myapp .
运行容器:
docker run -p 5000:5000 myapp
6. Docker Compose 进行多容器管理
Docker Compose 允许管理多个容器,示例如下:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
启动所有服务:
docker-compose up -d
7. Docker 在实际开发中的应用
- 开发与测试:创建一致的开发环境,避免环境差异导致的 Bug。
- 微服务架构:多个服务可以通过容器独立运行。
- 数据科学和 AI 训练:使用容器封装依赖,快速部署实验环境。
8. 结论
Docker 作为现代 DevOps 的关键工具,极大提升了应用的可移植性和部署效率。通过合理使用 Docker,可以提高开发和运维的效率,使应用更易于扩展和维护。