検索
Canonical LXD
記事の項目

最近の投稿

LXDコンテナに新たにipアドレスを設定

この記事の項目

LXDコンテナに新しいIPアドレスを設定するには、以下の手順に従ってください。以下の例では、新しいIPアドレスを`192.168.1.100`として設定しますが、必要に応じて適切なIPアドレスを使用してください。

コンテナを停止する

IPアドレスを変更する前に、LXDコンテナを一時停止します。

				
					$ lxc stop コンテナ名
				
			

`コンテナ名`は変更したいコンテナの名前に置き換えてください。

LXCネットワーク設定確認

 lxd init で作られた設定 profile を確認すると、

nictype: bridged

が反映されなかったのだろうか

				
					$ lxc profile show default

config: {}
description: Default LXD profile
devices:
  eth0:
    name: eth0
    network: lxdbr0
    type: nic
  root:
    path: /
    pool: default
    type: disk
name: default
used_by:
- /1.0/instances/u2204
				
			

ネットワークブリッジ lxdbr0 は、しっかりと tupe: bridge で作られている。

				
					$ lxc network show lxdbr0

config:
  ipv4.address: 10.168.153.1/24
  ipv4.nat: "true"
  ipv6.address: fd42:545c:c191:76b::1/64
  ipv6.nat: "true"
description: ""
name: lxdbr0
type: bridge
used_by:
- /1.0/instances/u2204
- /1.0/profiles/default
managed: true
status: Created
locations:
- none
				
			
				
					$ ip addr show dev lxdbr0

16: lxdbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:ad:5d:36 brd ff:ff:ff:ff:ff:ff
    inet 10.168.153.1/24 scope global lxdbr0
       valid_lft forever preferred_lft forever
    inet6 fd42:545c:c191:76b::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fead:5d36/64 scope link 
       valid_lft forever preferred_lft forever
				
			
				
					$ lxc exec u2204 ip addr show eth0

17: eth0@if18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:86:05:de brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fd42:545c:c191:76b:216:3eff:fe86:5de/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe86:5de/64 scope link 
       valid_lft forever preferred_lft forever
				
			

吾輩は猫である。名前はまだない。どこで生れたか頓と見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。

				
					 $ lxc profile create bridge
 
 Profile bridge created
 
 $ lxc profile list
+---------+---------------------+---------+
|  NAME   |     DESCRIPTION     | USED BY |
+---------+---------------------+---------+
| bridge  |                     | 0       |
+---------+---------------------+---------+
| default | Default LXD profile | 1       |
+---------+---------------------+---------+
				
			
				
					lxc profile set <profile_name> <option_key>=<option_value> <option_key>=<option_value> ...

$ lxc profile set bridge nictype=bridge

lxc profile device add <instance_name> <device_name> <device_type> <device_option_key>=<device_option_value> <device_option_key>=<device_option_value> ...

$ lxc profile device add bridge eth0 nic nictype=bridge parent=enp2s0
				
			
				
					$ lxc config device remove u2204 eth0
Device eth0 removed from u2204

$ lxc network attach lxdbr0 u2204 eth0 eth0

$ lxc config device set u2204 eth0 ipv4.address 192.168.10.2

$ lxc network list-leases lxdbr0
+-----------+-------------------+---------------------------------------+---------+
| HOSTNAME  |    MAC ADDRESS    |              IP ADDRESS               |  TYPE   |
+-----------+-------------------+---------------------------------------+---------+
| lxdbr0.gw |                   | 192.168.10.1                          | GATEWAY |
+-----------+-------------------+---------------------------------------+---------+
| lxdbr0.gw |                   | fd42:b50c:dfa:2d12::1                 | GATEWAY |
+-----------+-------------------+---------------------------------------+---------+
| u2204     | 00:16:3e:fc:35:27 | 192.168.10.2                          | STATIC  |
+-----------+-------------------+---------------------------------------+---------+
| u2204     | 00:16:3e:fc:35:27 | fd42:b50c:dfa:2d12:216:3eff:fefc:3527 | DYNAMIC |
+-----------+-------------------+---------------------------------------+---------+

$ sudo snap restart --reload lxd
				
			

新しいIPアドレスを設定する

LXDコンテナに新しいIPアドレスを設定します。これにはLXDの `config` コマンドを使用します。以下のコマンドを実行します。

				
					$ lxc config device add コンテナ名 デバイス名 nic nictype=bridged parent=ホスト上のブリッジ名 name=ethX

$ lxc config device set コンテナ名 デバイス名 ipv4.address 新しいIPアドレス
				
			

– `コンテナ名`: IPアドレスを変更したいコンテナの名前に置き換えてください。
– `デバイス名`: 新しいネットワークデバイスの名前を指定します(例:`eth0`など)。
– `ホスト上のブリッジ名`: LXDホスト上に設定されているブリッジの名前を指定します。通常は`lxdbr0`ですが、適切なブリッジ名を確認してください。
– `新しいIPアドレス`: コンテナに設定したい新しいIPアドレスを指定します(例:`192.168.1.100`など)。

				
					例:bash

$ lxc config device add my-container eth0 nic nictype=bridged parent=lxdbr0 name=eth0

$ lxc config device set my-container eth0 ipv4.address 192.168.1.21
				
			
				
					$ lxc config device add my-container eth0 nic nictype=bridged parent=lxdbr0 name=eth0

$ Device eth0 added to my-container
				
			
				
					$ lxc config device set my-container eth0 ipv4.address 192.168.1.21

				
			

コンテナを再起動する

IPアドレスの変更を反映させるために、コンテナを再起動します。

				
					$ lxc start コンテナ名
				
			

`コンテナ名`は変更したいコンテナの名前に置き換えてください。

これで、LXDコンテナに新しいIPアドレスが設定されました。必要に応じて、コンテナ内でネットワーク設定を調整し、新しいIPアドレスを使用して通信できるようにしてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Redis

$ sudo apt update $ sudo