LoginSignup
23
21

More than 5 years have passed since last update.

CentOS7でsudoなしでdockerを利用するちょっとした工夫

Posted at

CentOS7でsudoなしでdockerを利用するちょっとした工夫

概要

トゥ~ン…(プロフェッショナル風)
家のサーバをCentOS6.8からCentOS7にした。
Dockerを入れた。
Rootでは使えた。
CentOS6.8でやったように一般ユーザで使えるように設定した。
一般ユーザでは使えなかった。詰まった。

あと一歩だけ前に進もう…(プロフェッショナル)

そこで、sudoなしで使うためのCentOS7特有の設定について記したい。

同じ点

dockerインストールと起動

CentOS6系ではレポジトリの追加が必要でしたが、CentOS7では標準で対応しています。

yum
$ sudo yum install docker

もともと7系で標準搭載する機能としてfedoraとかで開発が進んでたものなのでね。(たしか)

systemd
$ sudo systemctl start docker.service

dockerサービスを起動させます。ここまではCentOS6.8でも同様でした。

異なる点

その1 dockerのグループが違う

dockerはLinuxのコンテナ技術を使った仮想化の仕組みですので、
考え方はインスタンス(仮想サーバ)というよりも1プロセスとして考える方が自然です。
そのためか、dockerは基本rootでしか動きません。というよりdockerサービスが使用する
ファイルは権限はrootのものがほとんどですので当たり前といえば当たり前なのですが。

ですが、DockerではDocker所属グループにユーザをぶち込むことで
rootでないユーザでもsudoなしで利用できるようになります。

CentOS6系ではDocker(docker-io)の所属グループは「docker」でしたが、
CentOS7ではDockerの所属グループは「Dockerroot」になっております。

groupファイルを確認するとdockerユーザになっております。

/etc/group
<中略>
pulse-access:x:992:
pulse:x:171:
gdm:x:42:
sssd:x:991:
gnome-initial-setup:x:990:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
slocate:x:21:
vboxusers:x:989:
clamupdate:x:988:
apache:x:48:
tomcat:x:91:
mysql:x:27:
radiusd:x:95:
dockerroot:x:987:jenkins,tubone
hadoop:x:1001:
input:x:986:
systemd-bus-proxy:x:985:
systemd-network:x:984:
geoclue:x:983:
setroubleshoot:x:982:

そのためCentOS6系の手順である、一般ユーザをdockerグループにぶち込む設定はこうなります。

gpasswd
$ sudo gpasswd -a USER dockerroot

その2 Dockerが使用するsockファイルをきちんとする

上記の手順で普通なら完了するのだが、私の環境ではどうにもうまくいかない。
なぜなんだ… ということで、sock ファイル を確認してみると

/var/run/docker.sock
srw-rw---- 1 root root 0  8月 27 19:06 /var/run/docker.sock

と、所属グループがrootですね… たまげたなぁ。

所属グループをdockerrootに直してあげます。

chown
$ sudo chown root:dockerroot /var/run/docker.sock

確認

確認
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

エラーが表示されず一般ユーザで動かせたよ。
やったぜ。

23
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
21