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

Docker技术入门与实战(附电子书资料)

概述

  • Docker 是一种开源的容器化平台,它能让开发者将应用程序及其依赖项打包到一个可移植的容器中,然后发布到任何支持 Docker 的环境中,实现“一次构建,到处运行”。
  • 电子书资料:https://pan.quark.cn/s/ce24aeed066c

一、Docker 核心概念

  1. 镜像(Image)

    • 是一个只读的模板,包含运行应用所需的代码、库、环境变量和配置文件。例如,一个 Python 镜像包含了 Python 运行环境。
    • 类比:可以看作是一个“安装包”,里面预装了应用运行的所有东西。
  2. 容器(Container)

    • 是镜像的运行实例,是一个独立的可执行单元。容器可以被创建、启动、停止、删除等。
    • 类比:镜像相当于“类”,容器相当于“对象”,一个镜像可以生成多个容器。
  3. 仓库(Repository)

    • 用于存放和分发 Docker 镜像的地方,分为公有仓库和私有仓库。
    • 类比:类似代码仓库(如 GitHub),但存储的是镜像。

二、Docker 安装

根据操作系统选择对应安装方式:

  • Windows:推荐使用 Docker Desktop(支持 Windows 10 专业版/企业版及以上,需开启 Hyper-V 或 WSL2)。
  • macOS:使用 Docker Desktop(支持 Intel 和 M1 芯片)。
  • Linux:通过包管理器安装(如 Ubuntu 用 apt-get install docker-ce),需注意添加用户到 docker 组以避免每次用 sudo

安装完成后,运行 docker --version 验证是否成功。

三、Docker 常用命令

1. 镜像相关
  • docker pull [镜像名:标签]:从仓库拉取镜像(如 docker pull ubuntu:20.04)。
  • docker images:查看本地所有镜像。
  • docker rmi [镜像ID/名称]:删除镜像(若有容器依赖需先删除容器)。
  • docker build -t [镜像名:标签] [Dockerfile路径]:根据 Dockerfile 构建镜像。
2. 容器相关
  • docker run [选项] 镜像名 [命令]:创建并启动容器
    常用选项:

    • -d:后台运行(守护模式)。
    • -p 主机端口:容器端口:端口映射(如 -p 8080:80 将容器 80 端口映射到主机 8080)。
    • -v 主机路径:容器路径:挂载数据卷(持久化数据,如 -v /data:/app/data)。
    • --name 容器名:指定容器名称。
      示例:docker run -d -p 80:80 --name mynginx nginx(启动一个 Nginx 容器)。
  • docker ps:查看正在运行的容器(加 -a 查看所有容器,包括停止的)。

  • docker start/stop/restart [容器ID/名称]:启动/停止/重启容器。

  • docker exec -it [容器ID/名称] /bin/bash:进入运行中的容器(交互模式)。

  • docker rm [容器ID/名称]:删除容器(加 -f 强制删除运行中的容器)。

四、Dockerfile:构建自定义镜像

Dockerfile 是一个文本文件,包含构建镜像的指令。通过编写 Dockerfile,可以定制符合需求的镜像。

基本指令示例:
# 基础镜像
FROM python:3.9-slim# 设置工作目录
WORKDIR /app# 复制当前目录文件到容器 /app
COPY . .# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt# 暴露端口
EXPOSE 5000# 容器启动时执行的命令
CMD ["python", "app.py"]

构建镜像:docker build -t mypythonapp:1.0 .. 表示当前目录的 Dockerfile)。

五、数据持久化:数据卷(Volume)

容器删除后,内部数据会丢失,通过数据卷可将数据持久化到主机:

  • docker volume create myvolume:创建数据卷。
  • docker run -v myvolume:/app/data 镜像名:将数据卷挂载到容器。
  • 查看数据卷:docker volume ls,删除:docker volume rm 卷名

六、Docker Compose:管理多容器应用

当应用需要多个容器(如前端、后端、数据库)时,用 Docker Compose 可通过 YAML 文件定义并一键启动所有服务。

示例 docker-compose.yml
version: '3'
services:web:build: .ports:- "5000:5000"depends_on:- dbdb:image: mysql:8.0environment:- MYSQL_ROOT_PASSWORD=root- MYSQL_DATABASE=mydbvolumes:- mysql_data:/var/lib/mysqlvolumes:mysql_data:

常用命令:

  • docker-compose up:启动所有服务(加 -d 后台运行)。
  • docker-compose down:停止并删除容器、网络。
  • docker-compose logs:查看服务日志。

七、进阶知识

  1. Docker 网络

    • 容器间通信通过网络实现,默认有 bridge(桥接,默认)、host(共享主机网络)、none(无网络)等模式。
    • 可自定义网络:docker network create mynet,容器加入网络:docker run --network mynet 镜像名
  2. 镜像优化

    • 使用轻量级基础镜像(如 alpine 版本)。
    • 合并 RUN 指令,清理缓存(如 apt-get clean)。
    • 使用 .dockerignore 文件排除不必要文件。
  3. Docker 安全

    • 避免用 root 用户运行容器。
    • 限制容器资源(CPU、内存):docker run --cpus 0.5 --memory 512m 镜像名

通过以上内容,你可以从基础操作逐步深入到实战应用。建议多动手实践,比如拉取镜像、创建容器、编写 Dockerfile,遇到问题时结合官方文档排查,很快就能掌握 Docker 的核心用法。

http://www.dtcms.com/a/297643.html

相关文章:

  • 第七章 愿景10 小杨的立项课
  • 【Practical Business English Oral Scene Interpretation】入职面试No.8~9
  • [NLP]UPF+RTL联合仿真的VCS命令及UPF-aware 波形工具的使用
  • 练习实践-基础设施-文件共享-windows和linux之间的文件共享-smb服务搭建
  • 开发笔记 | 优化对话管理器脚本与对话语音的实现
  • Day 21: 常见的降维算法
  • 5G基站信号加速器!AD8021ARZ-REEL7亚德诺 超低噪声高速电压放大器 专利失真消除技术!
  • Web前端:JavaScript Math对象应用 随机背景颜色生成器
  • 【STM32项目】智能家居(版本1)
  • 关于“PromptPilot”
  • 详解:YOLO 系列演进趋势
  • 计算机网络(第八版)— 第2章课后习题参考答案
  • day 35打卡
  • 图像梯度处理与边缘检测
  • Firefox 国际版关于标签页的一些常用设置
  • 电商数据采集API与爬虫技术结合的全网比价方案
  • 【Java、C、C++、Python】飞机订票系统---文件版本
  • 北斗短报文兜底、5G-A增强:AORO P1100三防平板构建应急通信网络
  • 【Agent】API Reference Manual(API 参考手册)
  • Elasticsearch-ik分析器
  • 【硬件】LT3763中文手册
  • 深入解析MongoDB分片原理与运维实践指南
  • 怎么放大单片机输出电流
  • k8s-MongoDB 副本集部署
  • vue2+node+express+MongoDB项目安装启动启动
  • pytest 测试报告生成方案有哪些?
  • Springboot整合springmvc
  • 基于Docker的GPU版本飞桨PaddleOCR部署深度指南(国内镜像)2025年7月底测试好用:从理论到实践的完整技术方案
  • 【赵渝强老师】MySQL中的数据库对象
  • 7月25号打卡