Docker 核心概念和安装

文章目录

    • [Docker 容器](#Docker 容器)
    • [Docker 镜像](#Docker 镜像)
    • [Docker 仓库](#Docker 仓库)
    • [Docker 技术原理](#Docker 技术原理)
    • [Docker 安装](#Docker 安装)
      • [1. Linux 系统](#1. Linux 系统)
      • [2. Windows 安装](#2. Windows 安装)
      • [3. Mac 安装](#3. Mac 安装)

Docker 容器

Docker 简单来说就是通过容器化技术给应用程序封装一个独立的运行环境,每个运行环境就是一个容器,运行容器的计算机被称为 宿主机。

与虚拟机最大的区别是Docker 容器共享同一个系统内核,而每个虚拟机都包含一个完整的系统内核。所以 Docker 容器比虚拟机更轻量,启动速度更快。

Docker 镜像

镜像可以理解为是一个特殊的压缩包,容器就像是通过压缩包解压(创建)出来的文件,我们可以使用同一个压缩包,解压出很多份相同的文件,也可以将这个压缩包分享给他人,得到和我们一样的文件。这里所说的 "文件",就是上面提到的容器。

我们也可以通过修改容器,并生成自己特定的 Docker 镜像,并将这些镜像分享给他人,其他人可以通过镜像,创建出和我们一样的容器环境。

Docker 仓库

Docker 仓库就是我们用来存储、分享镜像的地方。所有人都可以把自己的镜像上传到仓库里面,其他人就可以下载镜像并使用。

Docker 的官方仓库是 Docker Hub (https://hub.docker.com)

Docker 技术原理

Docker 利用了 Linux 的两大原生功能,实现容器化:

  • Cgroups 用来限制和隔离进程的资源使用。可以为每个容器设定 CPU、内存、网络带宽等资源的使用上限,确保容器的内存消耗不会影响到宿主机。
  • Namespaces 用于隔离进程的资源视图,使得容器只能看到自己内部的进程 ID、网络资源、文件目录,看不到宿主机的。

容器本质上还是一个特殊的进程,但是当我们进入容器内部时,看起来就像是一个独立的操作系统。

Docker 安装

Docker 是基于 Linux 的容器化技术,Windows 和 Mac 需要虚拟化一个 Linux 的子系统。所以 Docker 最好的使用方式是使用 Linux 系统的宿主机。

1. Linux 系统

Linux 系统可以通过包管理器安装 Docker,例如 Redhat 系可以使用 yum install docker 安装。

Alpine Linux 可以通过 apk add docker 安装

2. Windows 安装

打开 "Windows 功能", 勾选上 Virtual Machine Paftform(虚拟机平台)、适用于 Linux 的 Windows 子系统,并重启电脑。

管理员打开命令提示符,安装 wsl2

cmd 复制代码
wsl --set-default-version 2
wsl --update --web-download

Docker 官网 或者 https://github.com/tech-shrimp/docker_installer/releases 下载符合自己系统的 Docker Desktop 安装包,并进行安装,安装成功后 可以在终端尝试一下:

cmd 复制代码
C:\Users\xinjie>docker --version
Docker version 28.5.1, build e180ab8

在使用的过程中 Docker Desktop 需要一直开着,否则执行命令会出现这个报错:

cmd 复制代码
C:\Users\xinjie>docker ps
error during connect: Get "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.51/containers/json": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.

3. Mac 安装

直接在 Docker 官网下载安装包 安装就行。


👉点击进入 我的网站

相关推荐
虎头金猫16 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS17 小时前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
AI职业加油站18 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏19 小时前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
玉&心19 小时前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing19 小时前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅19 小时前
linux(8) 软硬链接
linux·运维·服务器
赵文宇(温玉)19 小时前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang20 小时前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren20 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github