Docker入门

提示:Docker入门学习

文章目录

  • Docker基本概念
  • Docker vs 虚拟机
  • Docker常用命令
    • 1. 镜像操作
    • 2. 容器操作
    • 3. Dockerfile 示例
  • Docker Compose
  • 使用场景
  • 学习资源


Docker基本概念

Docker 是一种开源的容器化平台,用于开发、部署和运行应用程序。它通过将应用及其依赖打包到轻量级容器中,实现环境隔离和跨平台一致性。

核心概念

1. 镜像(Image)
定义:只读的模板,包含应用程序代码、运行时环境、库和依赖项。
特点:轻量级、分层构建(每层是一个文件系统变更)、可复用。
示例:Python 官方镜像(python:3.9-slim)包含 Python 运行环境。
2. 容器(Container)
定义:镜像的运行实例,实现进程级隔离。
特点:启动速度快(毫秒级)、资源占用少、可移植性强。
隔离技术:利用 Linux 的namespaces(如 PID、网络、文件系统隔离)和cgroups(资源限制)。
3. 仓库(Registry)
定义:存储和分发 Docker 镜像的服务。
分类:
公共仓库:Docker Hub、Google Container Registry (GCR)、阿里云容器镜像服务。
私有仓库:企业内部使用,如 Harbor、Nexus。

Docker vs 虚拟机

Docker入门_第1张图片

Docker常用命令

1. 镜像操作

# 拉取镜像
docker pull [镜像名]:[标签]
# 查看本地镜像
docker images
# 构建镜像(需编写Dockerfile)
docker build -t [镜像名]:[标签] .
# 删除镜像
docker rmi [镜像ID/名称]

2. 容器操作

# 运行容器
docker run -d -p [宿主机端口]:[容器端口] --name [容器名] [镜像名]
# 查看运行中的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 停止/启动容器
docker stop/start [容器ID/名称]
# 进入容器
docker exec -it [容器ID/名称] /bin/bash
# 删除容器
docker rm [容器ID/名称]

3. Dockerfile 示例

一个简单的 Python 应用 Dockerfile:

# 基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制依赖文件
COPY requirements.txt .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 复制应用代码
COPY . .
# 暴露端口
EXPOSE 8000
# 运行应用
CMD ["python", "app.py"]

Docker Compose

用于定义和运行多容器 Docker 应用的工具。通过docker-compose.yml文件配置服务:

version: '3'
services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db
  db:
    image: postgres:13
    volumes:
      - postgres-data:/var/lib/postgresql/data
volumes:
  postgres-data:

使用以下命令启动:

docker-compose up -d  # 后台运行
docker-compose down   # 停止并清理

使用场景

开发环境一致性:确保开发、测试、生产环境一致。
微服务架构:每个服务独立打包、部署。
资源隔离:避免不同应用间的依赖冲突。

学习资源

官方文档:Docker Documentation
实战教程:Docker 从入门到实践

你可能感兴趣的:(docker,容器)