Docker 基础概念
1. 什么是Docker?
Docker是一个开源的平台,用于开发、运输和运行应用程序。它通过使用容器来打包应用程序及其依赖环境,使应用程序能够在任何平台上以一致的方式运行。
2. Docker的核心组件
- Docker Engine:Docker的核心,包括守护进程(daemon)、REST API和CLI(命令行界面)。
- 镜像(Image):一个只读的模板,包含创建容器的指令。
- 容器(Container):镜像的一个可运行实例。容器是独立的运行环境,包含应用程序及其依赖。
- Dockerfile:定义镜像的构建过程的文件,包含一系列指令。
- Docker Hub:Docker的公共注册表,用于存储和分发镜像。
3. Docker的基本命令
- docker run:运行一个新容器。
- docker ps:列出当前正在运行的容器。
- docker build:从Dockerfile构建镜像。
- docker pull:从注册表中拉取镜像。
- docker push:将镜像推送到注册表。
- docker stop:停止一个运行中的容器。
- docker rm:删除一个容器。
- docker rmi:删除一个镜像。
Docker Compose 基础概念
1. 什么是Docker Compose?
Docker Compose是一个用于定义和运行多容器Docker应用的工具。通过使用YAML文件来配置应用中的服务,并用一个命令来启动和停止这些服务。
2. Docker Compose的核心组件
- docker-compose.yml:Docker Compose的配置文件,定义了应用的服务、网络和卷。
- 服务(Services):应用中的独立组件,每个服务通常对应一个容器。
- 网络(Networks):定义服务之间的网络通信。
- 卷(Volumes):用于持久化数据。
3. Docker Compose的基本命令
- docker-compose up:启动配置文件中定义的所有服务。
- docker-compose down:停止并移除所有服务。
- docker-compose build:构建或重新构建服务。
- docker-compose ps:列出所有服务的状态。
- docker-compose logs:查看服务的日志。
- docker-compose exec:在运行的容器中执行命令。
实践示例
Docker 示例
- 创建一个简单的Dockerfile:
# 使用官方的Python基础镜像
FROM python:3.8-slim
# 设置工作目录
WORKDIR /app
# 复制当前目录内容到工作目录
COPY . /app
# 安装依赖
RUN pip install -r requirements.txt
# 运行应用程序
CMD ["python", "app.py"]
- 构建镜像:
docker build -t my-python-app . - 运行容器:
docker run -d -p 5000:5000 my-python-app
Docker Compose 示例
- 创建docker-compose.yml:
version: '3.7'
services:
web:
image: my-python-app
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
- 启动服务:
docker-compose up - 停止服务:
docker-compose down