首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >lxd 基本操作指令记录

lxd 基本操作指令记录

原创
作者头像
用户9979000
发布2023-05-15 18:29:26
发布2023-05-15 18:29:26
1.4K0
举报

TOC

1.环境

个人使用环境:ubuntu20.04 , lxd version : 5.13

2. 使用lxd 建立容器的指令

2.1 查询远端仓库对应的image

代码语言:shell
复制
     lxc remote list 
查询结果
查询结果
  • 说明: 云端发布的image 路径及命名,名称可以在创建容器时使用。查看当前支持的版本,可以通过访问url获取。

比如访问 ubuntu的image资源,访问 https://cloud-images.ubuntu.com/releases ; 获取下面的信息:

2.2 查询当前支持存储

代码语言:shell
复制
lxc storage list

note: default 为默认的存储地址,lxd_pool 是我创建的存储地址

QA

如何创建 自己的pool

代码语言:shell
复制
lxc storage create <pool_name> {storage_type} {options}
  • pool_name : 定义pool的名称
  • storage_type : lxd 规定的pool 类型; dir :目录类型,选择一个指定目录 brtfs : btrfs 文件类型,选择一个指定的btrfs 文件系统 ..... 创建举例:
代码语言:shell
复制
lxc storage create temp_pool dir source=/tmp/saaa
# 我的系统在storage/tools 挂载了一个btrfs 文件系统
lxc storage create temp_pool brtfs source=/storage/tools  

2.3 创建容器

代码语言:shell
复制
lxc launch|init <image_server>:<image_name> <instance_name> [flags]

使用init 或者 launch ,依赖指定的image创建容器;init 和 launch的区别是

  • init :创建容器
  • launch :创建容器后,进入容器

举例:使用远程仓库ubuntu 的 20.04 的释放版本,创建一个名为test 的容器,并指定存储空间为lxd_pool

代码语言:shell
复制
lxc init ubuntu:22.04 test --storage=lxd_pool
QA

如果默认创建容器时没有带 --storage ,则存储空间默认为 default 的pool;

如果创建容器时,没有命名,则容器自动创建一个名称。

创建好的容器,可以修改存储空间和容器名称

代码语言:shell
复制
lxc move <old name> <new name> --storage=<pool_name>

2.4 配置ssh 映射

ubuntu 默认创建好容器支持ssh;

在主设备中,我使用 device 的 proxy属性,配置宿主机和容器的ssh端口映射,客户端可以通过访问宿主机端口的方式,ssh登录容器。

代码语言:shell
复制
lxc config device <container name> <config name> proxy <listen option>  <connect option >

举例 为刚刚创建的test 容器定义一个proxy_ssh 的配置,将宿主机的 10000 端口映射到容器的ssh端口(22)

代码语言:shell
复制
lxc config device add test proxy_ssh proxy listen=tcp:0.0.0.0:10000 connect=tcp:0.0.0.0:22
QA
  • ssh 访问问题: ubuntu 默认支持的ssh 只支持证书访问,我们可以先容器的ssh修改配置文件,实现密码访问. 修改文件 /etc/ssh/sshd_config
代码语言:shell
复制
sudo vim /etc/ssh/sshd_config
# 修改完后
sudo /etc/init.d/ssh restart

如何进入容器,参考 2.5

2.5 进入容器

容器默认支持ubuntu 和 root 两个账号,其中ubuntu 支持sudo 组

我们可以直接使用这两个账号访问容器或者自定义账号访问。

2.5.1 执行容器内指令

^_^ 没有找到root 和 ubuntu的默认密码,可以通过lxc 直接执行容器指令

note:执行容器指令,需要确认容器已经启动

代码语言:shell
复制
lxc exec <instance_name> -- <command>

举例:修改容器test 的账号ubuntu 密码

代码语言:shell
复制
lxc exec test -- passwd ubuntu 
2.5.2 创建账号test1
  • 创建账号test1 ,并使用/bin/bash 作为登录shell, 自动创建账号目录
代码语言:shell
复制
lxc exec test -- useradd -m test1 -s /bin/bash
  • 给账号 test1加入sudo 组
代码语言:shell
复制
lxc exec test --  usermod -G sudo  test1
2.5.3 进入容器命令行
代码语言:shell
复制
lxc console test

退出命令行使用 <C-a>+q : 按住 ctrl 命令,点击 a, 松开后点击 q

2.6 其他

  • 查看 当前的容器列表
代码语言:shell
复制
lxc list 
  • 查看当前指定容器的配置
代码语言:shell
复制
lxc config show <container name>

举例:查看创建的test 容器配置

代码语言:shell
复制
lxc config show test
  • 停止容器
代码语言:shell
复制
lxc stop <container name>

举例: 停止创建的test 容器配置

代码语言:shell
复制
lxc stop test
  • 启动容器
代码语言:shell
复制
lxc start <container name>

举例: 启动创建的test 容器配置

代码语言:shell
复制
lxc start test

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.环境
  • 2. 使用lxd 建立容器的指令
    • 2.1 查询远端仓库对应的image
    • 2.2 查询当前支持存储
      • QA
    • 2.3 创建容器
      • QA
    • 2.4 配置ssh 映射
      • QA
    • 2.5 进入容器
      • 2.5.1 执行容器内指令
      • 2.5.2 创建账号test1
      • 2.5.3 进入容器命令行
    • 2.6 其他
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档