首页 > 其他分享 >1. Docker的介绍和安装 (二)

1. Docker的介绍和安装 (二)

时间:2024-07-24 20:54:24浏览次数:10  
标签:容器 sudo Namespace 介绍 Desktop Docker 安装 docker

5 Docker的原理

5.1 Namespace

Namespace(命名空间)提供了一个独立的工作环境,Docker使用Namespace来隔离容器,使得每个容器都有自己独立的系统资源(如进程ID、主机名、网络等)。

  • PID Namespace:隔离进程ID,保证每个容器有独立的进程树。
  • NET Namespace:隔离网络资源,使每个容器有独立的网络栈。
  • IPC Namespace:隔离进程间通信资源,如信号量、消息队列等。
  • MNT Namespace:隔离文件系统挂载点,使每个容器有独立的文件系统视图。
  • UTS Namespace:隔离主机名和域名,使每个容器有独立的主机名。
    在这里插入图片描述

5.2 Control Groups (cgroups)

Control Groups(cgroups)是Linux内核的功能,Docker使用cgroups来限制和隔离容器的资源使用(如CPU、内存、磁盘I/O等)。

  • 资源限制:通过cgroups,可以为每个容器设置资源使用上限,防止单个容器消耗过多资源。
  • 资源监控:cgroups提供了详细的资源使用统计,便于监控和优化容器的性能。
    在这里插入图片描述

5.3 UnionFS

UnionFS(联合文件系统)是Docker镜像的基础,它允许将多个文件系统叠加在一起,形成一个单一的文件系统。

  • 层级结构:每个Docker镜像由多层文件系统构成,镜像的修改只会在最上层生效,其他层保持不变。
  • 写时复制:当容器需要修改文件时,Docker会将文件复制到最上层文件系统,然后进行修改,这种方式提高了性能并节省了存储空间。

在这里插入图片描述

5 安装Docker

5.1 在Windows上安装Docker

使用Docker Desktop
  1. 下载Docker Desktop

  2. 安装Docker Desktop

    • 双击下载的安装包,按照安装向导步骤完成安装。
    • 启动Docker Desktop,等待Docker引擎启动完成。
  3. 验证安装

    • 打开命令行,执行docker --version命令,检查Docker版本信息。
配置Docker Desktop
  • 启用WSL 2:在Docker Desktop设置中,选择WSL 2作为默认的Linux内核。
  • 设置资源限制:在Docker Desktop设置中,调整CPU、内存和磁盘的使用限制。

5.2 在macOS上安装Docker

使用Docker Desktop
  1. 下载Docker Desktop

  2. 安装Docker Desktop

    • 打开下载的.dmg文件,将Docker拖到应用程序文件夹。
    • 启动Docker应用程序,等待Docker

引擎启动。

  1. 验证安装
    • 打开终端,执行docker --version命令,确认Docker版本。
配置Docker Desktop
  • 设置资源:在Docker Desktop设置中,调整CPU和内存的使用限制。
  • 启用文件共享:在Docker Desktop设置中,配置文件共享路径。

5.3 在Linux上安装Docker

使用包管理器安装Docker
  1. 更新系统包管理器

    sudo apt-get update  # Debian/Ubuntu
    sudo yum update      # CentOS/RHEL
    
  2. 安装Docker

    • Debian/Ubuntu

      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
      
    • 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 docker-buildx-plugin docker-compose-plugin
      

      上面是官方提供的地址,由于某些原因可能访问不上,可以使用阿里云提供的仓库地址:

      yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
      
  3. 启动Docker服务

    sudo systemctl start docker
    sudo systemctl enable docker
    
  4. 验证安装

    docker --version
    docker run hello-world
    
配置Docker用户权限
  • 将当前用户添加到Docker组,以便不需要sudo运行Docker命令:

    sudo usermod -aG docker $USER
    
配置Docker镜像加速器

你会发现,上面的** docker run hello-world**可能运行不成功,原因就是无法从Docker仓库下载到镜像,那就需要我们自己配置一个地址,目前比较靠谱的方案是使用阿里云的容器镜像服务,就会生成一个私有的镜像地址,并且阿里云后台也会生成配置镜像加速器的过程。如下图:

在这里插入图片描述
后面就可以愉快地使用Docker了。

标签:容器,sudo,Namespace,介绍,Desktop,Docker,安装,docker
From: https://blog.csdn.net/imdeity/article/details/140635693

相关文章

  • 1. Docker的介绍和安装(一)
    1什么是DockerDocker是一个开源的应用容器引擎,旨在简化应用的开发、交付和运行。通过容器技术,Docker能够将应用及其依赖打包在一个轻量级、可移植的容器中,确保应用在不同环境中的一致性和可靠性。2Docker的历史与背景Docker由SolomonHykes于2013年推出,旨在简化应用的......
  • 使用docker的mysql镜像,gin后端服务连接数据库失败。
    我的配置文件是这样的:(账号、密码、数据库名字都正确)mysql:host:127.0.0.1port:3306database:idealusername:rootpassword:1我的docker-mysql是这样的:(端口也暴露出来了)但是还是出现以下错误:[error]failedtoinitializedatabase,goterrordialt......
  • 基于STC89C51单片机的智能热水器控制系统设计(含文档、源码与proteus仿真,以及系统详细
    本篇文章论述的是基于STC89C51单片机的智能热水器控制系统设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。目录摘 要原理图仿真图代码系统论文资源下载摘 要现在社会发展迅速,人们的生活水平都有所提高,各种热水器的使用早已屡......
  • 算法介绍(一):LLCNN低光照
    对于一张灰度图片,像素值越大则亮度越高,像素值越小则亮度越低在数字图像处理领域有一种很简单的图像亮度调整算法——伽马变换伽马变换是一种用于调整图像亮度和对比度的非线性操作,其基本公式为(I'=I^\gamma),其中(I')是输出图像的灰度值,(I)是输入图像的灰度值,而(\g......
  • Wordpress安装到win10(2024年7月)
    目录1.wordpress介绍2下载应用2.1.wordpress2.2XAMPP 2.3PHPmyadmin3.配置应用3.1XAMPP进程3.2文件配置3.3phpmyadmin配置4.配置网页4.1数据库创建 4.2安装wordpress5.进入面板6.总结1.wordpress介绍WordPress是一个开源内容管理系统(CMS),它允许用户构......
  • alpine 3.18.7 编译安装redis7.2.5
    1.安装对应的包apkaddbuild-basegcclibc-devlinux-headers安装makeapkaddmake2.解压缩redis包,tar-xzvfredis-7.2.5.tar.gz#进入src目录cd/root/redis-7.2.5/src3.进行make编译make 但是还是提示jemalloc/jemalloc.h:Nosuch......
  • VMware workstation 17.0 安装与激活
    解压VMware17到当前目录:点击下载压缩包提取码ynxc右键鼠标 VMware-workstation-full-17.0.0-20800274选择以管理员身份运行(A):点击下一步:点击我接受许可协议中的条款(A):点击下一步:点击更改安装位置选择自己所要安装的目录下:点击 下一步:点击 下一......
  • Linux 服务器中如何实现 Docker 自动清理回收空间
    简介Docker是一个流行的容器化平台,但在使用过程中可能会占用大量磁盘空间。为了保持系统的整洁和高效,我们可以设置定时任务来自动清理Docker资源。本教程将指导你如何设置cron任务,以每天凌晨3点自动执行Docker清理命令。准备工作确保你的系统上已安装Docker。确保......
  • docker-compose安装loki
    在Linux上使用Docker安装Loki和Grafana,完成日志采集和分析的步骤如下:步骤1:安装Docker确保你已经安装并配置好Docker。如果还没有,请参考前面的安装步骤。步骤2:安装DockerCompose为了简化Loki和Grafana的安装和配置,建议使用DockerCompose。以下是在Ubuntu......
  • C++this指针--指针的介绍用法以及相关注意事项
    什么是this指针this指针是在C++中用来指向当前对象的特殊指针。它是每个非静态成员函数的隐式参数,指向调用该函数的对象。在C++类的成员函数中,除了静态成员函数外,每个成员函数都有一个隐含的this指针,它指向调用该函数的对象。这个指针可以让成员函数访问调用它的对象......