LXDで作成したコンテナを複製する手順を書きます。
1.前提条件
LXDで「rfriendsでラジオ録音」 その1
https://rfriends.hatenablog.com/entry/2022/05/26/131104
LXDで「rfriendsでラジオ録音」 その2
https://rfriends.hatenablog.com/entry/2022/05/27/044907
により以下のことが済んでいるものとします。
・LXDをインストール
・rfriendsコンテナを作成
・rfriends2をインストール
・proxyデバイスの設定済
・外部よりsshが可能
以下はrootで操作しています。
# lxc list rfriends | RUNNING | XXX.XXX.XXX.XXX (eth0) | 省略 (eth0) | CONTAINER | 0
# lxc config device show rfriends p50022: connect: tcp:XXX.XXX.XXX.XXX:22 listen: tcp:0.0.0.0:50022 type: proxy
2.rfriendsコンテナを複製
# lxc copy rfriends rfriends_copy
# lxc list
rfriends | RUNNING | XXX.XXX.XXX.XXX (eth0) | 省略 (eth0) | CONTAINER | 0 rfriends_copy | STOPPED | | | CONTAINER | 0
3.proxyデバイスの設定
1)rfriendsのproxy設定もcopyされているのを確認
# lxc config device show rfriends_copy p50022: connect: tcp:XXX.XXX.XXX.XXX:22 listen: tcp:0.0.0.0:50022 type: proxy
2)rfriends_copyのproxy設定を削除
ポート番号が重複することになるので削除
# lxc config device remove rfriends_copy p50022 Device p50022 removed from rfriends_copy
3)rfriends_copyコンテナをスタートさせる
# lxc start rfriends_copy
IPアドレスが振られているのを確認。
# lxc list rfriends | RUNNING | XXX.XXX.XXX.XXX (eth0) | 省略 (eth0) | CONTAINER | 0 rfriends_copy | RUNNING | zzz.zzz.zzz.zzz (eth0) | | CONTAINER | 0
4)proxyデバイスを追加
ポートが使われていないか調べる。使われていない場合、表示なし。
$ lsof -i:50122
proxyデバイスを追加
$ sudo lxc config device add rfriends_copy p500122 \ proxy listen=tcp:0.0.0.0:50122 connect=tcp:zzz.zzz.zzz.zzz:22 Device p500122 added to rfriends_copy
4.外部からrfriends_copyコンテナにssh
ssh radio@yyy.yyy.yyy.yyy:50122
yyy.yyy.yyy.yyyはホストのIPアドレス アクセスできない場合、firewall等でポートが閉じられていないか調べる。 データの転送は、teraterm(scp),Rlogin(sftp)が便利。
5.その他
以上でrfriendsコンテナと同じ環境のrfriends_copyコンテナが作成できました。 同様の操作で、PCの能力が許す限りいくらでも複製できます。 rfriendsコンテナとrfriends_copyコンテナはポート番号の違いでアクセスできます。
ssh radio@yyy.yyy.yyy.yyy:50022 (rfriends) ssh radio@yyy.yyy.yyy.yyy:50122 (rfriends_copy)
繰り返しますが、説明のためにセキュリティについては考慮していません。 実際の場面では鍵を作成してアクセスすべきです。 copyではなく、overlayでもできますが、若干面倒になります。
以上