CentOS7において表題の件について少々ハマったのでメモ。
■ 環境
- CentOS 7.0
- Docker 1.7.1
- Vagrant 1.7.4
■ CentOS 7
DockerがサポートしているCentOSのversionが以前は6.6でもkernelのversionさえ合えば良かったと記憶しているのだが、現在はCentOS-7.Xでなければダメと記載されている。kernelのversionも上がっている気がする。
http://docs.docker.com/installation/centos/
よって、CentOS 7の環境を準備することにした。
■ Vagrant
検証環境はVagrantで準備する。Boxは”chef/centos-7.0“を使用する。
$ vagrant box add chef/centos-7.0
$ vagrant init chef/centos-7.0
$ vagrant up
■ Docker
CentOS 7系では、デフォルトのレポジトリに”docker“が存在するようであるので、これをインストールする。
$ sudo yum install docker
またサービスとしても起動。
$ sudo systemctl start docker.service
一般ユーザからも`sudo`を使用せずに`docker`コマンドを利用したいので、いつものように”dockerroot“グループに”vagrant“ユーザを追加する。
$ sudo usermod -G dockerroot vagrant
これで”vagrant“ユーザも`docker`コマンドを利用できるようになるはず…と思ったのだが下記のエラーで使用できず。
$ docker version
Get http:///var/run/docker.sock/v1.19/containers/json?all=1: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
$
`/var/run/docker.sock`を確認してみると、下記のようになっている。
$ ls -l /var/run/docker.sock
srw-rw----. 1 root root 0 8月 19 19:09 /var/run/docker.sock
$
今までの環境においては、`root:root`ではなく、`root:dockerroot`であったと記憶している。よって変更してしまう。
$ sudo chown root:dockerroot /var/run/docker.sock
これで再度`docker`コマンドで確認したところ、問題なく結果が得られた。
$ docker version
Client version: 1.7.1
Client API version: 1.19
Package Version (client): docker-1.7.1-108.el7.centos.x86_64
Go version (client): go1.4.2
Git commit (client): 3043001/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Package Version (server): docker-1.7.1-108.el7.centos.x86_64
Go version (server): go1.4.2
Git commit (server): 3043001/1.7.1
OS/Arch (server): linux/amd64
$
permissionを変更してしまって良いのか…とも思ったが、”docker-engine“や他の環境においては`root:dockerroot`であるから、問題はないだろう。あくまで自己責任である。
以上。