桥接网络设置多用户lxd容器

news2024/9/21 14:39:11

文章目录

      • 前言
      • 配置宿主机网络
      • 固定内核版本
      • 安装 lxd、zfs 及 bridge-utils
      • 安装宿主机显卡驱动
      • lxd 初始化
      • 创建容器模板
      • 安装容器显卡驱动
      • 复制容器

前言

使用桥接网络配置 lxd 有个好处,就是每个用户都可以在该局域网下有一个自己独立的 IP,该 IP 的端口可以由用户自己设置和使用,无需进行端口转发的操作。

配置宿主机网络

  • 进入 /etc/netplan/ 目录有一个 yaml 配置文件,下面的命令需要根据自己的 yaml 文件名称自行修改:
    sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
    sudo vim /etc/netplan/01-netcfg.yaml
    
    修改内容如下:
    # This file describes the network interfaces available on your system
    # For more information, see netplan(5).
    network:
      version: 2
      renderer: networkd
      ethernets:
        eno1:
          dhcp4: no
          dhcp6: no
      bridges:
        br0:
          dhcp4: no
          dhcp6: no
          interfaces:
            - eno8303
          addresses: [ 192.168.23.115/24 ]
          gateway4: 192.168.23.1
          nameservers:
              addresses:
                  - 114.114.114.114
                  - 8.8.8.8
          parameters:
              stp: false
              forward-delay: 0
    
    其中:
    • addresses: [ 192.168.23.115/24 ] 为任意网络无人占用的 IP 即可。
    • gateway4: 192.168.23.1 为网关地址。
    • eno8303 为网卡名称,可以使用 ip a 命令查看。
  • 应用网络配置:
    sudo netplan --debug apply
    

固定内核版本

sudo apt-mark hold linux-image-generic linux-headers-generic

安装 lxd、zfs 及 bridge-utils

sudo snap install lxd
sudo apt install zfsutils-linux bridge-utils

安装宿主机显卡驱动

  • 安装依赖:
    sudo apt install gcc g++ make
    
  • 安装驱动:
    sudo bash ./NVIDIA-Linux-x86_64-550.90.07.run
    
  • 查看显卡:
    nvidia-smi
    
    在这里插入图片描述

lxd 初始化

  • 初始化 lxd:
    sudo lxd init
    
    在初始化过程中,不要创建新的网桥,已存在的网桥名为 br0,其他设置默认即可.
    Would you like to use LXD clustering? (yes/no) [default=no]:
    Do you want to configure a new storage pool? (yes/no) [default=yes]:
    Name of the new storage pool [default=default]: lxd
    Name of the storage backend to use (btrfs, ceph, dir, lvm, zfs) [default=zfs]:
    Create a new ZFS pool? (yes/no) [default=yes]:
    Would you like to use an existing block device? (yes/no) [default=no]:
    Size in GB of the new loop device (1GB minimum) [default=100GB]: 1200
    Would you like to connect to a MAAS server? (yes/no) [default=no]:
    Would you like to create a new local network bridge? (yes/no) [default=yes]: no
    Would you like to configure LXD to use an existing bridge or host interface? (yes/no) [default=no]: yes
    Name of the existing bridge or host interface: br0
    Would you like LXD to be available over the network? (yes/no) [default=no]:
    Would you like stale cached images to be updated automatically? (yes/no) [default=yes]
    Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
    

创建容器模板

  • 创建的容器版本最好与宿主机版本相同:

    sudo lxc launch ubuntu:22.04
    
  • 为方便后续使用,修改容器名:

    sudo lxc stop equipped-locust
    sudo lxc rename equipped-locust template
    sudo lxc start template
    
  • 为容器添加设备和权限:

    sudo lxc config device add template gpu gpu
    sudo lxc config set template security.nesting true
    sudo lxc config set template security.privileged true
    
  • 如果宿主机有多张显卡,一定要指定 GPU 的索引号:

    sudo lxc config device add template gpu-tmp0 gpu id=0
    sudo lxc config device add template gpu-tmp1 gpu id=1
    

    使用 nvidia-smi 查看 GPU 的索引号:
    在这里插入图片描述

  • 启动容器:

    lxc start template
    
  • 进入容器:

    sudo lxc exec template bash
    

    其中 template 为容器名。

  • 和宿主机一样,进入 /etc/netplan/ 目录有一个 yaml 配置文件,下面的命令需要根据自己的 yaml 文件名称自行修改:
    编辑 yaml 配置文件:

    mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
    vim /etc/netplan/50-cloud-init.yaml
    

    修改内容如下:

    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: no
          addresses:
            - 192.168.23.150/24
          gateway4: 192.168.23.1
          nameservers:
            addresses:
              - 114.114.114.114
              - 8.8.8.8
    

    其中:

    • addresses 为容器模板的 IP,与宿主机在同一网段下。
    • gateway4 为网关地址。
  • 应用网络配置:

    netplan --debug apply
    
  • 更改容器用户名和密码:
    容器默认用户名为 ubuntu,这里想把他改成 tmp,命令如下:

    usermod -l tmp -d /home/tmp -m ubuntu
    groupmod -n tmp ubuntu
    

    此时 /home 文件夹下只剩下 tmp 目录。
    更改 tmp 用户密码和 root 密码:

    passwd tmp
    passwd root
    
  • 配置容器 ssh 连接:
    安装 ssh :

    sudo apt install openssh-server
    

    安装完后,使用 systemctl 启动 ssh 服务:

    sudo systemctl enable --now ssh
    

    然后检查 ssh 服务运行状态,确保服务正常运行并且没有错误输出(显示 active running 表示服务正常):

    sudo systemctl status ssh
    

    在这里插入图片描述

    编辑 ssh 配置文件:

    vim /etc/ssh/sshd_config
    

    将其中以下内容进行修改:

    Port 22
    PubkeyAuthentication no
    PasswordAuthentication yes
    KbdInteractiveAuthentication yes
    

    重启 ssh 服务:

    systemctl restart sshd
    

    此时可以用 exit 命令退出到宿主机中,用 SSH 命令远程连接容器:

    sudo ssh ubuntu22-tmp@10.22.118.222
    

    输入密码,能登录则没问题。

  • 配置容器软件源:
    备份原来的源:

    sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    

    将源的内容设置为清华镜像:

    sudo apt install vim
    sudo rm /etc/apt/sources.list
    sudo vim /etc/apt/sources.list
    

    将其中内容改为:

    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    
    # 预发布软件源,不建议启用
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse 作者:贝拉的海 https://www.bilibili.com/read/cv17891624?spm_id_from=333.999.0.0 出处:bilibili
    

    更新软件列表:

    sudo apt update
    sudo apt upgrade
    
  • 设置 pip 清华源:

    sudo apt install python3-pip
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    

安装容器显卡驱动

容器和宿主机的显卡驱动必须保持一致,因此需要将宿主机的驱动文件传输到容器中。 因为刚安好了 ssh,因此可以选择 scp 传输。在宿主机中输入以下命令:

scp ./NVIDIA-Linux-x86_64-550.90.07.run yhl@192.168.23.151:/home/yhl/

传输后通过 ssh 进入容器,输入以下命令安装显卡驱动:

sudo bash ./NVIDIA-Linux-x86_64-418.56.run --no-kernel-module

由于容器和宿主机共享内核,所以在安装容器的显卡驱动时需要添加 --no-kernel-module 参数。

复制容器

lxc copy template yhl

新复制的容器用于与容器模板相同的配置,但需要另行安装显卡驱动。

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

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

相关文章

崩坏星穹铁道PC端2.5版本剧情、奖励攻略 用GameViewer远程帮手机减负 随时畅玩星铁PC端

《崩坏:星穹铁道》2.5版本「碧羽飞黄射天狼」在9月10开启!上半卡池有五星角色飞霄、知更鸟、卡芙卡、黑天鹅四位角色,还有2.5版本的新剧情,这一次崩铁上线送10连和 1000星琼等其他材料。由于游戏包体过大,不少玩家都选…

web群集--nginx实现重定向与重写操作的详细配置过程详与案例展示

文章目录 前言什么是重定向?重定向能做什么?何时需要重定向功能?nginx通过什么来实现重定向和重写操作的?nginx的重定向和重写有什么区别?案例展示重定向1.将所有对将所有对http://test. com 的访问重定向到http://www…

【iOS】push和present的区别

【iOS】push和present的区别 文章目录 【iOS】push和present的区别前言pushpop presentdismiss简单小demo来展示dismiss和presentdismiss多级 push和present的区别区别相同点 前言 在iOS开发中,我们经常性的会用到界面的一个切换的问题,这里我们需要理清…

眼镜超声波清洗机真的有用吗?畅销款热门清洗机测评,买前必看!

随着科技的飞速发展,人们的生活水平也日益提升。眼镜,作为我们日常生活中不可或缺的物品,其重要性不言而喻。然而,许多人往往忽视了对它的定期清洁保养。尽管市面上有专门用于清洁眼镜的布,但这种方法并不能完全去除镜…

CloudFlare问题与CDN问题

昨天将腾讯云的解析转移到Cloudflare中了,结果今天发现网站崩了,显示重定向次数过多,昨天估计是因为浏览器缓存,所以没有发现问题 问题一:强制HTTPS 当时看到CloudFlare的强制https时就想到了我的宝塔面板也开着强制h…

【机器学习】结构学习的基本概念以及基于约束的结构学习和基于评分的结构学习

引言 结构学习在机器学习中是指自动发现数据中潜在的结构或模式的过程,这通常涉及到确定数据的依赖关系、变量间的相互作用或者数据的组织形式。 文章目录 引言一、结构学习1.1 目标1.2 方法1.3 应用1.4 挑战1.5 工具和技术1.6 步骤1.7 总结 二、基于约束的结构学习…

2024年法国7大最佳影响力营销平台

影响力平台是一种工具,可以帮助企业找到有影响力的人,全面管理从头到尾的营销活动,并评估其效果。这类工具能够为广告商或影响力代理机构提供以下服务: 发布营销活动,让 有影响力的人可以申请。这就是所谓的 影响力市…

QT程序的安装包制作教程

在Windows平台上开发完qt c桌面应用程序以后,需要制作一个安装包,方便生产和刻盘交货,本文记录相关流程。 目录 一、安装Qt Installer Framework 二、准备可执行程序 2.1 生成Release程序 2.2 完成依赖库拷贝 三、创建安装包程序 一、…

2024icpc江西:H.Convolution(二维前缀和,卷积核)

题目 做法 我们发现&#xff0c;K中的每个元素都乘了对应原矩阵中子矩阵&#xff08;n-k1&#xff09;* (m-l1)中的每个数。我们就直接前缀和求就好了。 #include<bits/stdc.h> #define int long long using namespace std;const int N1e310; int n,m,k,l; int a[N][N…

语言中的浮点数

浮点数相比定点数或者整数&#xff0c;为了处理小数点引入了指数&#xff0c;导致小数点的位置根据不同浮点数而不同&#xff0c;故名为Floating Point Number. 一般而言&#xff0c;IEEE754标准被大部分编程语言的浮点数使用&#xff0c;它节省了浮点数的保存空间。如不然&…

思维导图模板,看完这些步骤学会制作

思维导图模板&#xff0c;思维导图是一种非常有效的信息组织工具&#xff0c;它将复杂的信息以图形化的形式展现出来&#xff0c;便于记忆和理解。无论是用于项目管理、学习笔记整理还是头脑风暴会议记录&#xff0c;思维导图都能够帮助人们更好地梳理思路&#xff0c;提高工作…

在 ClickHouse 中进行机器学习数据建模

本文字数&#xff1a;17443&#xff1b;估计阅读时间&#xff1a;44 分钟 作者&#xff1a;Dale McDiarmid 本文在公众号【ClickHouseInc】首发 本文将探索 MLOps 的世界&#xff0c;探讨如何在 ClickHouse 中对数据进行建模和转换&#xff0c;使其成为高效的特征存储&#xff…

百收网AI发帖子怎么发?

百收网AI发帖子怎么发&#xff1f; 百家号APP怎么发内容&#xff1f;没有电脑怎么在百度发内容&#xff1f;#百家号 查看视频讲解&#xff1a;&#xff08;点击链接https://v.youku.com/v_show/id_XNjQyMjc4MjU3Ng.html&#xff1a;https://v.youku.com/v_show/id_XNjQyMjc4M…

Linux云计算 |【第三阶段】PROJECT1-DAY1

主要内容&#xff1a; 服务器硬件&#xff08;RAID磁盘阵列、IDRAC远程控制卡&#xff09;、部署LNMP动态网站&#xff08;部署LNMP平台、上线Wordpress代码、创建数据库、初始化Wordpress&#xff09; 一、服务器介绍 1、什么是服务器 服务器&#xff08;Server&#xff09…

C++入门(part 3)

前言 在前文我们讲解了C的诞生与历史&#xff0c;顺便讲解一些C的小语法&#xff0c;本文会继续讲解C的基础语法知识。 1.inline(内联函数) inline是C新加入的关键字,用inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用的地方将函数展开&#xff0c;这样每次…

数据中台 | 数据资源管理平台介绍

01 产品概述 数据资源的盘查、集成、存储、组织、共享等全方位管理能力&#xff0c;无论对于企业的数字化转型&#xff0c;还是对企业数据资产的开发、运营、交易及入表&#xff0c;都具有极为关键的作用。今天&#xff0c;小兵就来为大家介绍我们自研数据智能平台中的核心产品…

废品回收小程序搭建,回收市场的机遇

随着经济的快速发展&#xff0c;居民生活水平普遍提高&#xff0c;产生的各类废品也在不断增加&#xff0c;为废品回收市场提供了发展基础。当下&#xff0c;在大众环保意识增加下&#xff0c;废品回收行业也将成为一个具有广阔发展前景的朝阳行业&#xff01; 目前&#xff0…

C++vector类 (带你一篇文章搞定C++中的vector类)

感谢大佬的光临各位&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 数据结构习题_LaNzikinh篮子的博客-CSDN博客 初阶数据结构_LaNzikinh篮子的博客-CSDN博客 收入专栏&#xff1a;C_LaNzikinh篮子的博客-CSDN博客 其他专…

代码随想录27期|Python|Day54|​单调栈|​42. 接雨水|84. 柱状图中最大的矩形

42. 接雨水 根据常识可以归纳出&#xff0c;对于每一列所能够存住的水的高度 Height min(LeftMax, RightMax) - height 也就是&#xff0c;当前列的存水高度 左侧和右侧柱子的最大高度的较小值&#xff0c;减去当前列的柱子高度&#xff0c;所得到的差值。 可以验证第4列&…

spring常用注解(10)@Order

一、 1、作用 加Order()注解&#xff0c;在注解中加入数字&#xff0c;数字越小&#xff0c;优先级越高&#xff0c;最先执行。 2、使用方法 &#xff08;1&#xff09;自定义顺序 Component Order(1) public class XxxFilter extends OncePerRequestFilter{}Component Or…