如何重命名 LXD / LXC 容器
您可以在 lxd 实例内或之间移动或重命名容器。在本快速教程中,我将展示如何在 Linux 操作系统下使用 lxc 命令行重命名 LXD 管理的 LXC 容器。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 终端 |
类别 | 路西法 |
操作系统兼容性 | Debian • Fedora • Linux • Ubuntu |
预计阅读时间 | 4 分钟 |
如何重命名本地 LXD 容器
假设您要将名为 file-server 的本地容器重命名为 debian-wheezy。语法为:
或使用别名:
请注意,不允许重命名正在运行的容器。因此,首先停止容器,输入:
现在重命名它:
启动它:
验证它:
$ lxc move {old-lxc-name} {new-lxc-name}
mv
$ lxc mv {old-lxc-name} {new-lxc-name}
$ lxc stop file-server
$ lxc move file-server debian-wheezy
$ lxc start debian-wheezy
$ lxc info debian-wheezy
图01:重命名本地容器
$ lxc exec debian-wheezy bash
如果需要,更改主机名并更新 /etc/hosts: 验证新的更改: 示例输出:
root@debian-wheezy:~# echo 'debian-wheezy' > /etc/hostname
# Use sed to find and replace text and hostname #
root@debian-wheezy:~# sed -i 's/file-server/debian-wheezy/g' /etc/hosts
root@debian-wheezy:~# exit
$ lxc restart debian-wheezy
$ lxc exec debian-wheezy bash
root@debian-wheezy:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 7 (wheezy)" NAME="Debian GNU/Linux" VERSION_ID="7" VERSION="7 (wheezy)" ID=debian ANSI_COLOR="1;31" HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support/" BUG_REPORT_URL="http://bugs.debian.org/"
移动实例而不移动其快照
传递--instance-only以下内容以重命名本地容器实例。例如:
$ lxc move {old_name} {new_name} --instance-only
$ lxc move nginx-proxy alpine-nginx-revers-proxy --instance-only
您还可以在两个主机之间移动容器,如果目标名称不同,则重命名。语法是:
例如:
$ lxc move [<remote>:]
$ lxc stop server1:foo
$ lxc move server1:foo server2:bar
重命名 LXD/LXC 快照
语法相同:
$ lxc move {instance}/{old snapshot name} {instance}/{new snapshot name}
在此示例中,将名为“snap0”的快照重命名为名为“u1”的容器的“before-backups”:
$ lxc info u1
Name: u1 Status: RUNNING Type: container Architecture: x86_64 PID: 8853 Created: 2023/06/02 02:42 IST Last Used: 2023/06/07 13:32 IST Resources: Processes: 48 CPU usage: CPU usage (in seconds): 34 ... ..... .. inet6: ::1/128 (local) Snapshots: +-------+----------------------+------------+----------+ | NAME | TAKEN AT | EXPIRES AT | STATEFUL | +-------+----------------------+------------+----------+ | snap0 | 2023/06/09 09:23 IST | | NO | +-------+----------------------+------------+----------+
现在重命名它:
$ lxc move u1/snap0 u1/before-backups
验证它:
$ lxc info u1
Name: u1 Status: RUNNING Type: container Architecture: x86_64 PID: 8853 Created: 2023/06/02 02:42 IST Last Used: 2023/06/07 13:32 IST Resources: Processes: 48 CPU usage: CPU usage (in seconds): 34 Memory usage: Memory (current): 551.77MiB Memory (peak): 706.62MiB Network usage: eth0: Type: broadcast State: UP Host interface: veth890f1945 MAC address: 00:16:3e:fe:ad:7c MTU: 1500 Bytes received: 8.42MB Bytes sent: 272.03kB Packets received: 9646 Packets sent: 3097 IP addresses: inet: 10.83.200.242/24 (global) inet6: fe80::216:3eff:fefe:ad7c/64 (link) lo: Type: loopback State: UP MTU: 65536 Bytes received: 8.69kB Bytes sent: 8.69kB Packets received: 86 Packets sent: 86 IP addresses: inet: 127.0.0.1/8 (local) inet6: ::1/128 (local) Snapshots: +----------------+----------------------+------------+----------+ | NAME | TAKEN AT | EXPIRES AT | STATEFUL | +----------------+----------------------+------------+----------+ | before-backups | 2023/06/09 09:23 IST | | NO | +----------------+----------------------+------------+----------+
总结
我们使用lxc move命令在 LXD 服务器内或之间移动实例。换句话说,你可以使用此命令重命名或移动容器。
获取帮助
运行:
$ lxc move --help
这就是我所看到的。
Description: Move instances within or in between LXD servers Transfer modes (--mode): - pull: Target server pulls the data from the source server (source must listen on network) - push: Source server pushes the data to the target server (target must listen on network) - relay: The CLI connects to both source and server and proxies the data (both source and target must listen on network) The pull transfer mode is the default as it is compatible with all LXD versions. Usage: lxc move [<remote>:]<instance>[/<snapshot>] [<remote>:][<instance>[/<snapshot>]] [flags] Aliases: move, mv Examples: lxc move [<remote>:]<source instance> [<remote>:][<destination instance>] [--instance-only] Move an instance between two hosts, renaming it if destination name differs. lxc move <old name> <new name> [--instance-only] Rename a local instance. lxc move <instance>/<old snapshot name> <instance>/<new snapshot name> Rename a snapshot. Flags: --allow-inconsistent Ignore copy errors for volatile files -c, --config Config key/value to apply to the target instance -d, --device New key/value to apply to a specific device --instance-only Move the instance without its snapshots --mode Transfer mode. One of pull, push or relay. (default "pull") --no-profiles Unset all profiles on the target instance -p, --profile Profile to apply to the target instance --stateless Copy a stateful instance stateless -s, --storage Storage pool name --target Cluster member name --target-project Copy to a project different from the source Global Flags: --debug Show all debug messages --force-local Force using the local unix socket -h, --help Print help --project Override the source project -q, --quiet Don't show progress information --sub-commands Use with help or --help to view sub-commands -v, --verbose Show all information messages --version Print version number
请参阅如何使用 lxc 命令为 LXD 创建快照以获取更多信息。
- 在 Ubuntu 16.04 LTS 上安装 LXD 容器管理程序
- 如何在 Fedora Linux 26 上安装和设置 LXC(Linux 容器)
- 在KVM或Xen虚拟机下设置LXD容器
- 列出 LXD(Linux 容器)中的 VM 映像
- 升级由 Ubuntu/Debian 或 CentOS Linux 驱动的 LXD 容器
- 在 Linux 启动时自动启动 LXD 容器
- 重命名 LXD / LXC 容器的命令
- 在配置启动时在 Linux 容器 (LXD) 实例上运行命令
- 在云实例启动时,使用 shell 脚本中的 LXD(Linux 容器)创建 VM
- 将 LXD VM 移动/迁移到 Linux 上的另一台主机
- Fedora 安装并设置 LXD
- CentOS 7.x 安装并设置 LXD 服务器
- 在 Ubuntu 18.04 LTS 上安装 LXD 纯容器管理程序
- 使用 lxc 命令为 LXD 创建快照
- 在 CentOS/RHEL 8 上设置并安装 LXD
- Ubuntu 20.04 LTS 安装并设置 LXD
- 完整备份和恢复 LXD 容器
- 禁用 LXD 桥上的防火墙和 NAT 规则
- 使用 lxc 删除或移除 LXD 容器
- Linux 文件系统错误:事务失败解决方案
- Ubuntu 22.04 LTS 设置 LXD
- Debian 11 设置 LXD