Ubuntu 14.04 の LXC で CentOS 6 の特権コンテナをたてて外部から SSH できるようにした記録。
Keywords: Ubuntu LXC CentOS block device ブロックデバイス 特権コンテナ
ゴール
Ubuntu 上で CentOS の特権コンテナをたてて、以下をしたい。
作業手順
パッケージインストール
# LXC で CentOS コンテナを立てるのに必要 sudo apt-get install lxc yum # 一部の不具合に対処するのに必要 sudo apt-get install cgroup-bin libpam-systemd apparmor-utils sudo reboot
コンテナ作成
sudo lxc-create -n centos -t centos # AppArmor 無効化 sudo apparmor_parser -R /etc/apparmor.d/usr.bin.lxc-start sudo aa-disable usr.bin.lxc-start
コンテナ設定を編集
sudo vi /var/lib/lxc/centos/config
で以下の内容を修正 or 追記。
lxc.network.type = macvlan lxc.network.macvlan.mode = bridge lxc.network.flags = up lxc.network.link = em1 # When using LXC with apparmor, uncomment the next line to run unconfined: lxc.aa_profile = unconfined lxc.autodev = 1 # 許可したいブロックデバイスの major:minor を書く # 259 は NVMe デバイスのメジャー番号 lxc.cgroup.devices.allow = b 259:* rwm # ホスト起動時に自動起動したければ lxc.start.auto = 1 lxc.start.delay = 5
コンテナを起動
sudo lxc-start -n centos -d
ブロックデバイスファイルをコンテナに作成
sudo lxc-device -n centos add /dev/nvme0n1
コンテナのコンソールにアクセス
sudo lxc-console -n centos
パスワードは /var/lib/lxc/centos/tmp_root_pass
にある。
以上。後はご自由にどうぞ。