在Linux中使用docker【上】(docker、nvidia-docker安装)

在Linux中使用docker【上】(docker、nvidia-docker安装)

  • 一、Docker介绍
  • 二、在Linux中使用Docker的意义
    • 2.1 轻量级与资源高效
    • 2.2 快速部署与版本控制
    • 2.3 隔离与安全
    • 2.4 简化运维
    • 2.5 跨平台兼容
    • 2.6 持续集成与持续部署(CI/CD)
  • 三、Docker的安装
    • 3.1 ubuntu下安装docker
    • 3.2 ubuntu下安装nvidia-docker
    • 3.3 centos下安装docker
    • 3.4 centos下安装nvidia-docker

一、Docker介绍

  Docker是一个强大的工具神器,它使得应用程序的打包、部署和管理变得更加简单、高效和安全。无论是在开发、测试还是生产环境中,都发挥着重要的作用。

  Docker是开源的应用容器引擎,它基于Go语言实现,并依赖于操作系统的机制和特性。Docker的主要目的是让开发者能够打包他们的应用及其依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,实现轻量级虚拟化。这种容器化的应用程序被称为Docker容器,它们通过Docker镜像创建,而这些镜像文件可以存放在私有仓库或共有仓库中。

  Docker采用了“写时复制”(copy-on-write)模型,使得修改应用程序变得非常迅速。此外,Docker还支持面向服务的体系结构和微服务架构,提高应用程序的模块化和可维护性。

  Docker由PaaS提供商dotCloud开发,作为开源项目发布。它的源代码托管在Github上,并遵从Apache2.0协议。

二、在Linux中使用Docker的意义

  由于LInux版本的众多以及应用程序对Linux众多版本、环境包众多版本兼容性方面的天然弱势,Docker在Linux中的使用比在Windows中要重要许多。另外,作为服务器的主要操作系统,Docker在Linux中的生产场景的使用随着时间变动越来越普及。

  在Linux中使用Docker的主要特点有:

2.1 轻量级与资源高效

Docker基于容器技术,与传统的虚拟机相比,它更加轻量级并且资源消耗更少。

它不需要为每个应用程序分配一个完整的操作系统,而是允许多个应用程序共享一个主机操作系统,从而提高了资源利用率。

2.2 快速部署与版本控制

Docker容器包含应用程序及其所有依赖项,这使得部署变得快速且一致。

开发人员可以创建一个Docker镜像,其中包含他们应用程序的所有代码和配置,然后在生产环境中简单地运行该镜像,以确保应用程序的一致性和可重复性。

2.3 隔离与安全

虽然Docker容器共享主机操作系统,但它们相互隔离,这意味着一个容器中的进程不会干扰另一个容器。

这种隔离提供了额外的安全性层,防止应用程序之间的潜在冲突。

2.4 简化运维

Docker提供了一种标准化的方法来管理和运行应用程序,使得运维变得更加简单。

例如,可以使用Docker Compose来同时运行多个相互依赖的容器,或者使用Docker Swarm或Kubernetes来管理和扩展应用程序。

2.5 跨平台兼容

Docker容器是跨平台的,可以在不同的操作系统和硬件架构上运行。

2.6 持续集成与持续部署(CI/CD)

Docker与CI/CD工具(如Jenkins、Travis CI等)无缝集成,使得开发人员能够更频繁地构建、测试和部署应用程序。

三、Docker的安装

3.1 ubuntu下安装docker

在Ubuntu上安装Docker的步骤如下:

  1. 前提条件

    • 确保Ubuntu系统是64位的。
    • 内核版本需要是3.10或更高。可以通过运行uname -r命令来检查内核版本。
  2. 卸载旧版本

    • 如果之前安装过Docker的旧版本(如dockerdocker.iodocker-engine),需要先卸载它们。运行以下命令来卸载:

      sudo apt-get remove docker docker-engine docker.io containerd runc
      
  3. 安装Docker Engine社区版

    • 更新APT包索引:

      sudo apt-get update
      
    • 安装必要的软件包,这些软件包允许APT使用HTTPS进行软件包检索:

      sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
      
    • 添加Docker的官方GPG密钥:

      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
      
    • 添加Docker APT存储库:

      sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
      
    • 更新APT包索引:

      sudo apt-get update
      
    • 安装最新版本的Docker Engine-Community:

      sudo apt-get install docker-ce 
      
  4. 启动并启用Docker

    • 启动Docker服务:

      sudo systemctl start docker
      
    • 设置Docker开机自启:

      sudo systemctl enable docker
      
  5. 验证安装

    • 运行以下命令来检查Docker服务的状态【正常显示active (running)】:

      sudo systemctl status docker
      
    • 运行以下命令来检查Docker是否安装成功并显示其版本信息:

      sudo docker version
      

3.2 ubuntu下安装nvidia-docker

在Ubuntu下安装nvidia-docker的前提是先确保已经安装好了Docker和NVIDIA显卡驱动。

在Ubuntu上安装Docker的步骤如下:

  1. 前提条件

    • 如果还没有安装Docker,可以按照Docker官方文档或上述提供的步骤在Ubuntu上安装Docker。
    • 确保系统中已经正确安装了NVIDIA显卡驱动。可以运行nvidia-smi命令来验证驱动是否已经安装并且正常工作。
  2. 安装nvidia-docker

    • 首先需要添加nvidia-docker的APT存储库到系统中。这通常涉及到下载并添加一个GPG密钥和一个源列表文件。你可以从NVIDIA的官方GitHub仓库中找到这些信息。

      # 添加Nvidia-Docker的GPG key
      curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -# 添加Nvidia-Docker的repository
      distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
      curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
      
    • 添加存储库后,更新APT包索引:

      sudo apt-get update
      
    • 然后,你可以使用以下命令来安装nvidia-docker

      sudo apt-get install -y nvidia-docker2
      
    • 安装完成后,需要重启Docker服务来使nvidia-docker生效:

      sudo systemctl restart docker
      
  3. 验证安装
    通过运行一个简单的nvidia-docker命令来验证其是否安装成功,比如:

    # 显示NVIDIA显卡的详细信息
    nvidia-docker run --runtime=nvidia nvidia/cuda:9.0-base nvidia-smi
    

3.3 centos下安装docker

在CentOS上安装Docker的步骤如下:

  1. 更新yum源

    首先,确保系统已经更新了最新的yum源。可以使用以下命令进行更新:

sudo yum update
  1. 安装依赖包

    安装Docker需要一些依赖包,可以通过以下命令安装:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 添加Docker的yum软件源

    添加Docker的稳定版本yum软件源。可以通过以下命令进行添加:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 更新yum软件源缓存

    添加了新的yum软件源后,需要更新yum软件源缓存。使用以下命令进行更新:

sudo yum update
  1. 安装Docker

    可以开始安装Docker了。使用以下命令进行安装:

sudo yum install -y docker-ce
  1. 启动Docker服务

    安装完成后,需要启动Docker服务。使用以下命令进行启动:

sudo systemctl start docker
  1. 验证Docker是否安装成功

    运行以下命令来检查Docker是否安装成功并显示其版本信息:

    sudo docker version
    sudo docker info
    

3.4 centos下安装nvidia-docker

在CentOS上安装NVIDIA Docker的步骤如下:

  1. 前提条件

    • 首先确保已经在CentOS上安装了Docker。你可以使用官方文档或之前提到的命令来安装Docker。
    • 确保系统中已经正确安装了NVIDIA显卡驱动,可以访问NVIDIA官方网站或Docker Hub上的NVIDIA Docker仓库,下载适合你CentOS版本的NVIDIA Docker安装包。【通常是一个RPM包】
  2. 安装NVIDIA Docker

    使用以下命令安装NVIDIA Docker RPM包:

    # 将<version>替换为下载的RPM包的实际版本号
    sudo yum localinstall -y nvidia-docker2-<version>.noarch.rpm
    
  3. 重启Docker服务

    配置完成后,重启Docker服务以使更改生效:

    sudo systemctl restart docker
    
  4. 验证安装

    可以运行一个简单的nvidia-docker命令来验证安装是否成功。例如:

    sudo nvidia-docker run --rm nvidia/cuda:10.0-base nvidia-smi
    

    如果命令成功执行并显示了NVIDIA GPU的信息,那么安装就成功了。


(未完待续…)


may the odds be ever in your favor ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/720912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考中级系统集成必备100题(41-60)真题精炼

文章目录 41.控制进度采用的工具和技术有哪些&#xff1f;42.简述项目成本管理的过程&#xff1f;43.简述项目成本控制点主要内容&#xff1f;44.什么是应急储备和管理储备&#xff1f;45.简述项目质量管理包括哪些过程&#xff1f;46.请简述对质量与等级的认识&#xff1f;47.…

springboot+bootstrap+jsp校园二手书交易平台mlg86

考虑到实际生活中在校园二手书交易系统方面的需要以及对该系统认真的分析,将系统权限按管理员和学生这两类涉及用户划分。 (a) 管理员&#xff1b;管理员使用本系统涉到的功能主要有个人中心、学生管理、图书类型管理、二手图书管理、通知公告管理、管理员管理、用户留言、系统…

Linux操作系统已成为技术领域的一块重要基石

在数字时代&#xff0c;Linux操作系统已成为技术领域的一块重要基石&#xff0c;无论是开发者、系统管理员还是普通技术爱好者&#xff0c;Linux都扮演着不可或缺的角色。本文旨在为读者提供一个关于Linux常用命令的全面概览&#xff0c;帮助大家更高效地使用Linux系统。 Linu…

Windows Docker 部署 MySQL

部署 MySQL 打开 Docker Desktop&#xff0c;切换到 Linux 容器。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 MySQL 服务。这里安装的是 8.3.0 Tag版本&#xff0c;如果需要安装其他或者最新版本&#xff0c;可以到 Docker Hub 进行查找。 docker run -itd --n…

DC电源模块的 PCB设计和布局指南

BOSHIDA DC电源模块的 PCB设计和布局指南 DC电源模块的PCB设计和布局是一个关键的步骤&#xff0c;它直接影响到电源的性能和稳定性。下面是一些DC电源模块的PCB设计和布局的指南&#xff1a; 1. 选择合适的PCB尺寸和层数&#xff1a;根据电源模块的尺寸和功能需求&#xff0…

【SPDK】SPDK + fio编译、测试(包成功版)

准备使用fio对spdk做性能测试的时候,查阅网上的其他资料,发现基本上都没有直接能跑出来的。 经过自己的摸索,跑通了。特此记录一下整个过程,方便其他人参考。 一、 fio 编译 首先需要做的是fio的编译。 1、 下载fio源码 git clone https://github.com/axboe/fio.git 注…

蓝桥杯前端Web赛道-新鲜的蔬菜

蓝桥杯前端Web赛道-新鲜的蔬菜 题目链接&#xff1a;1.新鲜的蔬菜 - 蓝桥云课 (lanqiao.cn) 题目要求如下&#xff1a; 其实很容易联想到使用flex布局&#xff0c;这是flex布局一种非常经典的骰子布局&#xff0c;推荐Flex 布局教程&#xff1a;实例篇 - 阮一峰的网络日志 (r…

【python课程作业】python学生成绩管理系统

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。给舍友做的课程作业。 功能包括&#xff1a;成绩管理、学生管理、课程管理、班级管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.co…

Android m/mm/mmm/make编译模块

一.编译成模块的前置条件 Android编译环境初始化完成后&#xff0c;我们就可以用m/mm/mmm/make命令编译源代码了。lunch命令其实是定义在build/envsetup.sh文件中的函数lunch提供的。与lunch命令一样&#xff0c;m、mm和mmm命令也分别是由定义在build/envsetup.sh文件中的函数…

JD商品详情API:电商新宠,助力商家提升销售效率

JD商品详情API&#xff08;Application Programming Interface&#xff09;是一种为电商行业提供的接口服务&#xff0c;它允许商家或开发者从京东平台获取商品详情信息&#xff0c;进而将这些信息整合到自己的系统或应用中&#xff0c;以实现诸如商品比价、商品推荐、数据分析…

C#,电话数字键盘问题(Mobile Numeric Keypad problem)的算法与源代码

1 电话数字键盘问题 提供移动数字键盘。您只能按向上、向左、向右或向下至当前按钮的按钮。不允许您按最下面一行的角点按钮&#xff08;即.*和#&#xff09;。 移动键盘 给定一个数N&#xff0c;找出给定长度的可能数。 示例&#xff1a; 对于N1&#xff0c;可能的数字数为…

【 HTML 及浏览器 】前端跨页面通信

前端跨页面通信&#xff1a;连接分散界面的纽带 在构建复杂的前端应用时&#xff0c;我们常常需要在不同的页面之间进行数据通信。无论是同源页面还是非同源页面&#xff0c;通信机制都是实现多页面数据同步和交互的关键。本文将探讨各种前端跨页面通信的方法&#xff0c;并提…

迷不迷糊?前后端、三层架构和MVC傻傻分不清

现在的项目都讲究前后端分离&#xff0c;那到底什么是前后端&#xff0c;前后端和以前的MVC以及三层架构啥关系呢&#xff1f;今天就这个问题展开一下&#xff0c;方面后面的学习&#xff0c;因为前面讲的jsp、servlet和javabean根据实例&#xff0c;基本上有一个框架的理解了&…

经纬恒润线控制动系统,新能源智能汽车的未来标配

随着汽车电动化、智能化的发展&#xff0c;制动系统迎来新一轮变革。在新能源车型尤其是新能源智能汽车中&#xff0c;智能底盘系统在底盘融合控制、整车安全方面重要性越来越高&#xff0c;线控制动属于智能底盘的重要部分&#xff0c;凭借着快速响应和精确执行的优势&#xf…

YOLOV9论文解读

代码&#xff1a;https://github.com/WongKinYiu/yolov9论文&#xff1a;https://arxiv.org/abs/2402.1361本文提出可编程梯度信息(PGI)和基于梯度路径规划的通用高效层聚合网络(GELAN)&#xff0c;最终铸成YOLOv9目标检测全新工作&#xff01;性能表现SOTA&#xff01;在各个方…

PCL中的点云分割模型的部分常用参数含义

PCL中的SacModel类别常用参数含义 1、SACMODEL_PLANE2、SACMODEL_LINE&#xff08;三维直线&#xff09;3、SACMODEL_CIRCLE2D&#xff08;二维圆&#xff09;4、SACMODEL_CIRCLE3D&#xff08;三维圆&#xff09;5、SACMODEL_SPHERE&#xff08;球&#xff09;6、SACMODEL_CYL…

《数字图像处理(MATLAB版)》相关算法代码及其分析(2)

目录 1 将8连通边界转换为4连通边界 1.1 移除对角线转折 1.2 插入额外像素 2 将边界信息转换为二进制图像 2.1 函数定义 2.2 参数处理和验证 2.3 默认大小参数设置 2.4 根据参数调整边界位置 2.5 生成二进制图像 2.6 错误处理 3 对二值图像边界的跟踪和提取 3.1 函…

脑机接口技术的伦理道德挑战与应对策略

随着科技日新月异的发展&#xff0c;脑机接口&#xff08;Brain-Computer Interface, BCI&#xff09;技术逐渐从科幻走向现实&#xff0c;为医疗、教育、娱乐等领域带来了前所未有的可能性。然而&#xff0c;这一前沿技术的应用也引发了一系列深刻的伦理道德问题&#xff0c;亟…

Mybatis学习记录

Mybatis学习记录 1.快速开始示例1.1 什么是MyMyBatis&#xff1f;1.2 代码示例 2.基本使用2.1 #{}和${} 2.2 参数传入2.2.1 概念说明2.2.2 单个简单类型2.2.3 实体类型2.2.4 零散简单数据类型2.2.5 Map类型 2.3 返回值2.3.1 单个简单类型2.3.2 实体类型2.3.3 Map类型2.3.4 List…

项目管理-启动会启动及执行

下面我说开启动会注意事项及怎么执行启动会&#xff0c;我会分为以下三点阐述事情&#xff1a; 1、启动会会前 2、启动会会中 3、启动会会后 启动会会前 内部 1、确认好公司参会人员&#xff08;项目团队核心人员、销售、售前、公司领导&#xff08;按需&#xff09;&#…