Docker 使用手册

Marimo_z
2025-04-01 / 0 评论 / 8 阅读 / 正在检测是否收录...

Docker 使用手册

目录

  1. Docker 概述
  2. 核心概念
  3. 安装 Docker
  4. 基础命令
  5. 高级应用
  6. 数据管理
  7. 网络配置
  8. 常见问题

1. Docker 概述

Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到轻量级、可移植的容器中,实现快速部署和跨环境一致性运行。

优势

  • 轻量级:共享操作系统内核,资源占用小
  • 标准化:一次构建,随处运行
  • 隔离性:容器间相互隔离,安全可靠
  • 快速部署:秒级启动,简化CI/CD流程

2. 核心概念

概念说明
镜像(Image)只读模板,包含运行环境和应用程序(如:Ubuntu+Python+Flask)
容器(Container)镜像的运行实例,可读写
仓库(Registry)存储镜像的服务器(默认Docker Hub)
Dockerfile定义镜像构建步骤的脚本文件
Docker Compose通过YAML文件定义和运行多容器应用的工具

3. 安装 Docker

Windows/macOS

  1. 下载 Docker Desktop
  2. 双击安装程序完成安装
  3. 启动后在终端验证:

    docker --version

Linux (Ubuntu)

# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

# 添加GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置仓库
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 验证安装
sudo docker run hello-world

4. 基础命令

镜像操作

# 拉取镜像
docker pull ubuntu:20.04

# 列出本地镜像
docker images

# 删除镜像
docker rmi <image_id>

# 构建镜像
docker build -t myapp:1.0 .

容器操作

# 运行容器(后台模式)
docker run -d --name my_container -p 8080:80 nginx

# 查看运行中的容器
docker ps

# 查看所有容器
docker ps -a

# 停止容器
docker stop <container_id>

# 启动已停止的容器
docker start <container_id>

# 进入容器终端
docker exec -it <container_id> /bin/bash

# 删除容器
docker rm <container_id>

# 查看容器日志
docker logs <container_id>

5. 高级应用

Dockerfile 示例

# 基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 复制文件
COPY requirements.txt .
COPY app.py .

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 暴露端口
EXPOSE 5000

# 启动命令
CMD ["python", "app.py"]

Docker Compose

docker-compose.yml 示例:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/app
  redis:
    image: "redis:alpine"

常用命令:

# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 查看服务状态
docker-compose ps

6. 数据管理

数据卷

# 创建数据卷
docker volume create my_vol

# 使用数据卷
docker run -v my_vol:/data --name vol_container ubuntu

目录挂载

# 挂载主机目录
docker run -v /host/path:/container/path nginx

7. 网络配置

基础网络

# 创建自定义网络
docker network create my_network

# 容器加入网络
docker run --network=my_network --name app1 my_image
docker run --network=my_network --name app2 my_image

网络类型

网络模式说明
bridge(默认)通过虚拟网桥进行NAT通信
host直接使用主机网络
none无网络配置

8. 常见问题

Q1: 如何清理无用资源?

# 删除所有停止的容器
docker container prune

# 删除未被使用的镜像
docker image prune -a

# 删除所有无用资源
docker system prune

Q2: 容器端口无法访问?

  • 检查防火墙设置
  • 确认端口映射正确:docker port <container_id>
  • 验证应用是否监听正确地址(0.0.0.0 vs 127.0.0.1)

Q3: 容器内无法执行命令?

  • 确认容器处于运行状态
  • 使用交互式模式:docker exec -it <container_id> /bin/bash

更多官方文档参考:Docker Documentation
1

评论 (0)

取消