私はLXCが好きなのですが、LXCの設定を丸暗記できません。LXCの使い方を一覧しているサイトが見当たらなかったので自分で書くことにしました。
ここで解説するのはLXCであって、LXDではありません。
Ubuntu 20.04をホストにしています。
LXCをインストールする
sudo apt install -y lxc lxc-templates
コンテナを作る
sudo lxc-create -n {コンテナ名} -t {テンプレート名}
Ubuntuのバージョンを指定してコンテナを作る
sudo lxc-create -n {コンテナ名} -t ubuntu -- -r focus
コンテナを起動する
sudo lxc-start {コンテナ名}
コンテナを再起動する
sudo lxc-stop -r {コンテナ名}
上記で再起動すると、configの変更が反映されません。
sudo lxc-stop {コンテナ名} sudo lxc-start {コンテナ名}
コンテナにホストのディレクトリをマウントする
ホストの/var/lib/lxc/{コンテナ名}/config
を編集します。
lxc.mount.entry = /home/motoki/workspace srv none bind 0 0
このように書くとホストの/home/motoki/workspace
の中身がコンテナの/srv
の中にマウントされます。
複数のディレクトリをマウントしたいときはlxc.mount.entry
を複数書けば成せます。
configを変更した後はコンテナの再起動が必要です。この再起動はLXCコンテナ内のOSの機能での再起動では不十分です。コンテナを再起動するが必要です。
コンテナ内でDockerを動かす
ホストの/var/lib/lxc/{コンテナ名}/config
を編集します。
lxc.include = /usr/share/lxc/config/nesting.conf lxc.apparmor.profile = unconfined lxc.cap.drop = lxc.cgroup.devices.allow = a lxc.mount.auto = cgroup
configを変更した後はコンテナの再起動が必要です。この再起動はLXCコンテナ内のOSの機能での再起動では不十分です。コンテナを再起動するが必要です。