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

Docker 基本概念与安装指南

Docker 基本概念与安装指南

一、Docker 核心概念

1. 容器(Container)

容器是 Docker 的核心运行单元,本质是一个轻量级的沙盒环境。它基于镜像创建,包含应用程序及其运行所需的依赖(如代码、库、环境变量等),但与宿主机和其他容器隔离,确保环境一致性。

2. 镜像(Image)

镜像是容器的静态模板,类似于面向对象中的“类”。它通过分层存储(Layer)实现高效复用,用户可通过 Dockerfile 自定义镜像,或从公共仓库(如 Docker Hub)拉取预构建镜像。

3. 仓库(Registry)

仓库用于存储和分发镜像,分为公共仓库(如 Docker Hub)和私有仓库。用户可通过 docker push 和 docker pull 命令上传或下载镜像。

4. Docker 与虚拟机的区别

虚拟机:需模拟完整操作系统,资源占用高,启动慢。

Docker 容器:共享宿主机内核,资源占用低,启动秒级完成。

5. Dockerfile  Docker Compose

Dockerfile:定义镜像构建步骤的脚本文件。

Docker Compose:通过 YAML 文件管理多容器应用的编排工具。

二、Docker 安装步骤

1. Linux 系统(以 Ubuntu 为例)


# 1. 卸载旧版本(如有)

sudo apt-get remove docker docker-engine docker.io containerd runc

# 2. 安装依赖工具

sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# 3. 添加 Docker 官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4. 设置稳定版仓库

echo "deb [arch=$(dpkg --print-architecture) 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

# 5. 安装 Docker 引擎

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

# 6. 验证安装

sudo docker run hello-world

权限配置(非 root 用户运行 Docker)


sudo usermod -aG docker $USER  # 将当前用户加入 docker 组

newgrp docker                  # 刷新用户组

2. Windows 系统

要求:Windows 10/11 64位,支持 WSL2(Windows Subsystem for Linux 2)。

步骤

    1. 启用 WSL2 功能:在 PowerShell 中执行 wsl --install。
    2. 下载并安装 Docker Desktop for Windows。
    3. 启动 Docker Desktop,在设置中启用 WSL2 后端。
    4. 验证:在终端运行 docker run hello-world。

3. macOS 系统

要求:macOS 10.15 或更高版本。

步骤

    1. 下载并安装 Docker Desktop for Mac。
    2. 双击安装包,将 Docker 拖入 Applications 文件夹。
    3. 启动 Docker,在菜单栏中确认状态为“Running”。
    4. 验证:终端运行 docker run hello-world。

三、快速入门示例

1. 运行 Nginx 容器


docker run -d -p 8080:80 --name my-nginx nginx

-d:后台运行容器。

-p 8080:80:将宿主机 8080 端口映射到容器的 80 端口。

访问 http://localhost:8080 查看 Nginx 默认页面。

2. 构建自定义镜像

创建 Dockerfile 文件:


FROM alpine:latest

RUN apk add --no-cache python3

CMD ["python3", "--version"]

构建并运行:


docker build -t my-python .

docker run my-python

四、常见问题与解决

  1. 权限拒绝错误

现象:执行 docker 命令时提示 Permission denied。

解决:将用户加入 docker 组并重启会话(见 Linux 安装步骤)。

  1. 镜像拉取缓慢

配置国内镜像加速器(如阿里云、中科大源),修改 /etc/docker/daemon.json:

 "registry-mirrors": ["https://<your-mirror-id>.mirror.aliyuncs.com"] }

相关文章:

  • [贪心_2] (含证明)将数组和减半的最少操作次数 | 最大数
  • QT 5.15 程序打包
  • 【阿里云大模型高级工程师ACP学习笔记】2.1 用大模型构建新人答疑机器人
  • Electron Demo 的快速编译与启动
  • Git 大文件使用 Git-LFS 管理,推送失败
  • SystemVerilog语法之内建数据类型
  • 【mongodb】--下载
  • windows传文件给mac, linux或者其他windows
  • 【自然语言处理与大模型】模型压缩技术之剪枝
  • C++回溯算法详解
  • Python+Word实现周报自动化的完整流程
  • Java 设计模式心法之第4篇 - 单例 (Singleton) 的正确打开方式与避坑指南
  • 鸿蒙系统的 “成长烦恼“:生态突围与技术迭代的双重挑战
  • 从零开始配置spark-local模式
  • AI 赋能 3D 创作!Tripo3D 全功能深度解析与实操教程
  • git 版本提交规范
  • 软件产品开发全生命周期管理概览:从市场调研到运营维护(着重开发版)
  • 特征提取登上Nature!计算速度为1.0256 TOPS
  • Oracle数据库和PLSQL安装配置
  • C# 的 字符串插值($) 和 逐字字符串(@) 功能
  • 盗播热门影视剧、电影被追究刑事附带民事责任,最高法发声
  • 18条举措!上海国际金融中心进一步提升跨境金融服务便利化
  • 扫描类软件成泄密“推手”,网盘账号密码遭暴力破解
  • 人均300+的日料,是后厨拆开的预制料理包
  • 著名政治学学者、中国人民大学教授仝志敏逝世
  • 神舟二十号全系统合练今日展开