← Docker 容器

Docker 容器

Docker入门指南:概念、安装与基本使用

·Docker 容器

全面介绍Docker容器技术的核心概念、架构原理、安装配置和基础使用方法。包括容器生命周期管理、镜像操作、网络配置、数据卷使用等实用内容,帮助新手快速掌握Docker技术。

Docker技术入门指南

1. Docker简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上。

1.1 核心概念

1.2 Docker架构

┌─────────────────────┐
│    Docker Client    │
└─────────┬───────────┘
          │
┌─────────▼───────────┐
│    Docker Daemon    │
└─────────┬───────────┘
          │
┌─────────▼───────────┐
│ Containers│Images   │
└─────────────────────┘

2. 安装Docker

2.1 Ubuntu安装

# 更新包索引
sudo apt-get update

# 安装必要的系统工具
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 添加Docker的官方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

2.2 CentOS安装

# 安装必要的系统工具
sudo yum install -y yum-utils

# 添加软件源信息
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io

3. Docker基本操作

3.1 服务管理

# 启动Docker服务
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

# 查看Docker状态
sudo systemctl status docker

3.2 镜像操作

# 搜索镜像
docker search nginx

# 拉取镜像
docker pull nginx:latest

# 列出本地镜像
docker images

# 删除镜像
docker rmi nginx:latest

3.3 容器操作

# 创建并启动容器
docker run -d --name mynginx -p 80:80 nginx

# 列出运行中的容器
docker ps

# 列出所有容器
docker ps -a

# 停止容器
docker stop mynginx

# 启动容器
docker start mynginx

# 删除容器
docker rm mynginx

4. Docker网络配置

4.1 网络类型

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

# 列出网络
docker network ls

# 查看网络详情
docker network inspect mynetwork

5. 数据管理

5.1 数据卷(Volumes)

# 创建数据卷
docker volume create mydata

# 使用数据卷运行容器
docker run -d \
  --name devtest \
  -v mydata:/app \
  nginx:latest

5.2 绑定挂载(Bind Mounts)

# 将主机目录挂载到容器
docker run -d \
  --name webserver \
  -v /src/webapp:/usr/share/nginx/html \
  nginx:latest

6. Docker Compose基础

# docker-compose.yml示例
version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example

7. 最佳实践

  1. 安全性建议
    - 使用非root用户运行Docker守护进程
    - 定期更新Docker版本
    - 使用安全的基础镜像

  2. 性能优化
    - 合理使用多阶段构建
    - 优化镜像大小
    - 使用合适的存储驱动

  3. 开发建议
    - 使用.dockerignore文件
    - 编写清晰的Dockerfile
    - 合理使用缓存机制

8. 常见问题排查

8.1 容器启动失败

# 查看容器日志
docker logs container_id

# 查看容器详细信息
docker inspect container_id

8.2 存储空间问题

# 清理未使用的对象
docker system prune

# 查看Docker使用的磁盘空间
docker system df

8.3 网络连接问题

# 检查容器网络
docker network inspect bridge

# 进入容器进行网络诊断
docker exec -it container_id /bin/bash