Q&A
Dockerのイメージとしてsystemdが使えるCentOS7イメージを作りたいと思っているのですが、cgroupの知識がなく、Dockerfileの内容が理解できません。
以下は、dockerhub上のSystemd integrationで紹介されているbase imageの丸写しです。
Dockerfile
1FROM centos:7 2ENV container docker 3RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ 4systemd-tmpfiles-setup.service ] || rm -f $i; done); \ 5rm -f /lib/systemd/system/multi-user.target.wants/*;\ 6rm -f /etc/systemd/system/*.wants/*;\ 7rm -f /lib/systemd/system/local-fs.target.wants/*; \ 8rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ 9rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ 10rm -f /lib/systemd/system/basic.target.wants/*;\ 11rm -f /lib/systemd/system/anaconda.target.wants/*; 12VOLUME [ "/sys/fs/cgroup" ] 13CMD ["/usr/sbin/init"]
この、VOLUME [ "/sys/fs/cgroup" ]
が何をやっているのかわかりません。
kubernetesで上記imageをpodにしましたが、CentOSの/sys/fs/cgroup
には
systemd
の空ディレクトリがあるのみで、
自分としては、
1、ホスト側の/sys/fs/cgroup
が丸っとマウントされるか
2、tasks
などのcgroupのファイルが作られるのか
と何となく思っていたので、混乱しました。
これは、一般的に期待されるように、コンテナごとにcgroupで切った後、そこからCentOSでinitが始まるように、うまいこと親cgroup(この場合CentOSのcontainer?)から継承されているということでいいのでしょうか。
また、kubernetesやDocker runなどでresourceを指定してあげた場合、CentOSのsystemdはそのリソースをサブシステムとして使うということでいいのでしょうか。
よろしくお願いします。
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。