当前位置: 首页 > news >正文

Docker容器使用手册——入门篇(上) - 实践

Docker容器使用手册——入门篇(上) - 实践

目录

1. 简介

1.1 什么是Docker

Docker是一个开源的容器化平台,它允许开发者打包他们的应用及其依赖项到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

1.2 Docker的优势

  • 简化部署:将应用及其依赖打包到容器中,保证环境一致性
  • 隔离性:容器之间相互隔离,避免环境冲突
  • 轻量级:容器共享主机内核,启动速度快,资源占用少
  • 可移植性:容器可以在不同环境中一致运行
  • 扩展性:易于实现容器编排和自动扩展
  • 版本控制:可以对容器镜像进行版本管理

1.3 Docker的应用场景

2. 基本概念

2.1 容器(Container)

容器是Docker的基本执行单元,是镜像的运行时实例。容器包含应用及其依赖,但共享主机操作系统内核。

2.2 镜像(Image)

镜像是一个只读的模板,包含运行容器所需的所有文件系统结构和内容。镜像可以基于其他镜像构建,通过Dockerfile定义构建过程。

2.3 Dockerfile

Dockerfile是一个文本文件,包含构建Docker镜像所需的一系列命令。每个命令在镜像中创建一个新的层。

2.4 仓库(Repository)

仓库是集中存放Docker镜像的地方,可以是公开的(如Docker Hub)或私有的。仓库分为公共仓库和私有仓库。

2.5 注册表(Registry)

注册表是存放仓库的服务器,如Docker Hub是最大的公共注册表。

2.6 卷(Volume)

卷是用于持久化数据的机制,允许数据在容器间共享或在容器停止后保留。

3. 安装与配置

3.1 在Windows上安装Docker

  1. 系统要求

    • Windows 10 64位专业版、企业版或教育版(1607+),或Windows 11
    • 启用Hyper-V和容器功能
    • 至少4GB RAM
  2. 安装步骤

  3. 验证安装

3.2 在macOS上安装Docker

  1. 系统要求

    • macOS 11 Big Sur或更高版本
    • 至少4GB RAM
  2. 安装步骤

  3. 验证安装

3.3 在Linux上安装Docker

  1. Ubuntu/Debian安装

    sudo apt-get update
    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
  2. CentOS/RHEL安装

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io
    sudo systemctl start docker
    sudo systemctl enable docker
  3. 验证安装

    sudo docker version
    sudo docker run hello-world

3.4 配置Docker

  1. 配置国内镜像源

    • 编辑/etc/docker/daemon.json(Linux)或在Docker Desktop的设置中配置
    {
    "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
    ]
    }
    • 重启Docker服务:sudo systemctl restart docker(Linux)或重启Docker Desktop
  2. 配置用户权限

    sudo usermod -aG docker $USER
    • 重新登录以应用更改

4. 容器管理

4.1 创建与运行容器

  1. 基本命令

    docker run [选项] 镜像名 [命令] [参数]
  2. 常用选项

  3. 示例

    # 运行一个Nginx容器,映射80端口,命名为my-nginx
    docker run -d -p 80:80 --name my-nginx nginx
    # 运行MySQL容器,设置密码,挂载数据卷
    docker run -d -p 3306:3306 --name mysql \
    -e MYSQL_ROOT_PASSWORD=password \
    -v mysql-data:/var/lib/mysql \
    mysql:8.0

4.2 查看容器

  1. 列出所有运行中的容器

    docker ps
  2. 列出所有容器(包括已停止的)

    docker ps -a
  3. 查看容器详情

    docker inspect 容器名或ID
  4. 查看容器日志

    docker logs [选项] 容器名或ID
    # 实时查看日志
    docker logs -f 容器名或ID
  5. 查看容器内进程

    docker top 容器名或ID

4.3 容器的启动、停止、重启

  1. 启动容器

    docker start 容器名或ID
  2. 停止容器

    docker stop 容器名或ID
  3. 重启容器

    docker restart 容器名或ID
  4. 强制停止容器

    docker kill 容器名或ID

4.4 进入容器

  1. 使用exec进入容器(推荐)

    docker exec -it 容器名或ID /bin/bash
    # 对于Alpine基础的容器
    docker exec -it 容器名或ID /bin/sh
  2. 使用attach连接容器

    docker attach 容器名或ID

4.5 删除容器

  1. 删除单个容器

    docker rm 容器名或ID
  2. 强制删除运行中的容器

    docker rm -f 容器名或ID
  3. 删除所有已停止的容器

    docker container prune

5. 镜像管理

5.1 拉取镜像

# 拉取最新版本
docker pull 镜像名
# 拉取指定版本
docker pull 镜像名:标签
# 示例
docker pull nginx:latest
docker pull mysql:5.7

5.2 查看镜像

# 列出所有本地镜像
docker images
# 查看镜像详情
docker inspect 镜像名或ID
# 查看镜像历史
docker history 镜像名或ID

5.3 删除镜像

# 删除单个镜像
docker rmi 镜像名或ID
# 强制删除镜像
docker rmi -f 镜像名或ID
# 删除所有未使用的镜像
docker image prune -a

5.4 构建镜像

  1. 创建Dockerfile

    # 使用官方Python镜像作为基础镜像
    FROM python:3.9-slim
    # 设置工作目录
    WORKDIR /app
    # 复制requirements.txt到容器
    COPY requirements.txt .
    # 安装依赖
    RUN pip install --no-cache-dir -r requirements.txt
    # 复制应用代码
    COPY . .
    # 暴露端口
    EXPOSE 5000
    # 设置环境变量
    ENV NAME World
    # 运行应用
    CMD ["python", "app.py"]
  2. 构建镜像

    docker build -t 镜像名:标签 路径
    # 示例
    docker build -t myapp:v1 .
  3. 构建优化技巧

    • 使用多阶段构建减小镜像体积
    • 按依赖变化频率排序Dockerfile指令
    • 使用.dockerignore文件排除不需要的文件
    • 选择更小的基础镜像(如Alpine)

5.5 推送镜像

  1. 登录Docker Hub

    docker login
  2. 标记镜像

    docker tag 本地镜像名:标签 用户名/仓库名:标签
  3. 推送镜像

    docker push 用户名/仓库名:标签
http://www.jsqmd.com/news/308912/

相关文章:

  • 轻量大模型趋势一文详解:Qwen2.5-0.5B如何适配边缘计算
  • 2026年 湖南电商平台开户服务推荐榜单:爱采购/1688/诚信通/阿里巴巴/淘宝/天猫/京东/拼多多/抖店/外卖/网店/短视频,一站式高效开通与专业运营指南
  • HG-ha/MTools实操手册:无需编译,一键启动AI图片处理+音视频编辑
  • SiameseUIE实战:从文本中一键抽取实体关系与事件
  • 8步出图有多快?Z-Image-Turbo性能实测报告
  • Hunyuan-MT-7B-WEBUI使用心得:适合哪些场景?
  • “校园“财递通”快递代取系统的设计与实现-计算机毕业设计源码+LW文档
  • GTE+SeqGPT多场景应用:技术文档问答、产品FAQ生成、内部知识检索
  • MedGemma X-Ray参数详解:CUDA_VISIBLE_DEVICES适配与显存占用优化
  • MedGemma-X入门必看:中文医学术语表注入与专业表达风格控制技巧
  • Sophos Firewall (SFOS) v22 GA re-release - 下一代防火墙
  • SQL Server Management Studio (SSMS) 22.2.1 - 微软数据库管理工具
  • Keil调试实时变量刷新设置:图解说明操作流程
  • Mac系统CubeMX安装教程:小白指南轻松上手
  • MinerU能否识别二维码?附加信息读取实验
  • 通义千问2.5-7B与Docker集成:容器化部署完整指南
  • 详解M-P神经元模型:神经网络的基石
  • 通义千问3-4B显存不足?4GB量化版移动端部署解决方案
  • CogVideoX-2b新手教程:网页端输入文字即可生成短视频
  • Altium Designer电路图实战案例:项目应用详解
  • STM32平台中scanner采样频率调节技巧:实战经验
  • 安全加固措施:防止InstructPix2Pix被恶意利用的输入过滤机制
  • 强烈安利8个AI论文网站,继续教育学生轻松搞定毕业论文!
  • 无人机航线辅助模块技术解析
  • 2026纸箱厂家推荐:创新技术引领纸箱新风尚,工业纸箱/工业纸盒/纸箱/农产品纸箱/纸盒/彩印包装,纸箱厂家推荐
  • 2026年 臭氧发生器厂家推荐排行榜:大型/小型/水处理/工业/移动式/壁挂式/手提式/空间灭菌全类型深度解析与选购指南
  • FSMN-VAD体验报告:准确率高且响应快
  • HG-ha/MTools企业应用场景:音视频编辑自动化落地方案
  • AI程序员已来!亚马逊三大Agent革命性突破,从代码到运维一站式解决!
  • 音频质量不满意?7个参数调优建议请查收