はとのーと

エジソンノート(アイデア、思い付き、メモ)として使っています。誰かの役に立つかもしれないので公開しています。

LXC/LXDについてのメモ

  • イメージの一覧を表示する (ローカル): lxc image list
  • イメージの一覧を表示する (リモート): lxc image list images:
  • イメージを検索する: lxc image list images: debian, lxc image list images: debian amd64
  • コンテナを作成・実行する: lxc launch {IMAGE} {CONTAINER}, 例: lxc launch images:debian/10/amd64 deb1
  • コンテナのシェルに入る: lxc exec {CONTAINER} bash
  • コンテナを内部からシャットダウンする: lxc exec {CONTAINER} -- shutdown -h now
  • コンテナを外部からシャットダウンする: lxc stop {CONTAINER}
  • コンテナのディレクトリ共有とポートフォワードを確認する: lxc config device show {CONTAINER}
  • ホストとコンテナでディレクトリを共有する: lxc config device add {CONTAINER} share disk source={HOST_DIR} path={CONTAINER_DIR}
  • コンテナへのポートフォワードを追加する: lxc config device add {CONTAINER} {FORWARD_NAME} proxy listen=tcp:{HOST_IP}:{HOST_PORT} connect=tcp:{CONTAINER_IP}:{CONTAINER_PORT} bind=host, 例: lxc config device add deb1 deb1-ssh proxy listen=tcp:192.168.0.4:22 connect=tcp:0.0.0.0:22 bind=host
  • コンテナへのポートフォワードを削除する: lxc config device remove {CONTAINER} {FORWARD_NAME}
  • ホストとコンテナで UID を同じにする: echo "{USER}:{UID}:1" | sudo tee -a /etc/subuid, echo "{GROUP}:{GID}:1" | sudo tee -a /etc/subgid, lxc config set {CONTAINER} raw.idmap 'both {UID} {UID}'
  • スナップショットを取る: lxc snapshot {CONTAINER} [{SNAPNAME}]
  • スナップショットの一覧を表示する: lxc info {CONTAINER} (スナップショットの容量はzfsバックエンドの場合 zfs list -t snapshot で表示される)
  • スナップショットを削除する: lxc delete {CONTAINER}/{SNAPNAME}

参考リンク

Is it better to use snap vs apt - LXD - Linux Containers Forum

Ubuntu 18.04 の apt でインストールできる LXD は期限切れなので、バグやセキュリティの面から snap でインストールした方が良いという話。

第479回 LXDコンテナとホストの間でファイルを共有する方法:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社