SakuraVPSのCentOS7でDockerのインストール
とりあえず、dockerの依存性を見てみる。
$ yum deplist docker 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: mirror.dmmlabs.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp パッケージ : docker.x86_64 2:1.13.1-53.git774336d.el7.centos 依存性 : /bin/sh provider: bash.x86_64 4.2.46-29.el7_4 依存性 : docker-client = 2:1.13.1-53.git774336d.el7.centos provider: docker-client.x86_64 2:1.13.1-53.git774336d.el7.centos 依存性 : docker-common = 2:1.13.1-53.git774336d.el7.centos provider: docker-common.x86_64 2:1.13.1-53.git774336d.el7.centos 依存性 : libassuan.so.0()(64bit) provider: libassuan.x86_64 2.1.0-3.el7 依存性 : libaudit.so.1()(64bit) provider: audit-libs.x86_64 2.7.6-3.el7 依存性 : libc.so.6(GLIBC_2.17)(64bit) provider: glibc.x86_64 2.17-196.el7_4.2 依存性 : libdevmapper.so.1.02()(64bit) provider: device-mapper-libs.x86_64 7:1.02.140-8.el7 依存性 : libdevmapper.so.1.02(Base)(64bit) provider: device-mapper-libs.x86_64 7:1.02.140-8.el7 依存性 : libdevmapper.so.1.02(DM_1_02_97)(64bit) provider: device-mapper-libs.x86_64 7:1.02.140-8.el7 依存性 : libdl.so.2()(64bit) provider: glibc.x86_64 2.17-196.el7_4.2 依存性 : libgpg-error.so.0()(64bit) provider: libgpg-error.x86_64 1.12-3.el7 依存性 : libgpgme.so.11()(64bit) provider: gpgme.x86_64 1.3.2-5.el7 依存性 : libgpgme.so.11(GPGME_1.0)(64bit) provider: gpgme.x86_64 1.3.2-5.el7 依存性 : libgpgme.so.11(GPGME_1.1)(64bit) provider: gpgme.x86_64 1.3.2-5.el7 依存性 : libpthread.so.0()(64bit) provider: glibc.x86_64 2.17-196.el7_4.2 依存性 : libpthread.so.0(GLIBC_2.2.5)(64bit) provider: glibc.x86_64 2.17-196.el7_4.2 依存性 : libpthread.so.0(GLIBC_2.3.2)(64bit) provider: glibc.x86_64 2.17-196.el7_4.2 依存性 : libseccomp.so.2()(64bit) provider: libseccomp.x86_64 2.3.1-3.el7 依存性 : libsystemd.so.0()(64bit) provider: systemd-libs.x86_64 219-42.el7_4.10 依存性 : libsystemd.so.0(LIBSYSTEMD_209)(64bit) provider: systemd-libs.x86_64 219-42.el7_4.10 依存性 : rtld(GNU_HASH) provider: glibc.x86_64 2.17-196.el7_4.2 provider: glibc.i686 2.17-196.el7_4.2 依存性 : systemd provider: systemd.x86_64 219-42.el7_4.10
特に気にせずインストール
Dockerの公式サイトに手順が載っているけど、無視してコマンド一発で済ませる。 Get Docker CE for CentOS | Docker Documentation docker-ceとdocker-eeの内容の違いは不明。(コミュニティーエディションとエンタープライズエディションらしい)
sudo yum install docker docker --version → Docker version 1.13.1, build 87f2fab/1.13.1
バージョン1.13は結構古いみたいだけど、気にしないことにする。
起動と自動起動
sudo systemctl start docker sudo systemctl enable docker → Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
Dockerの起動(ただしrootで)
docker run ubuntu:14.04 /bin/echo 'Hello world' → /usr/bin/docker-current: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See '/usr/bin/docker-current run --help'.
権限のエラーが出てしまった。とりあえずrootで再実行。
sudo docker run ubuntu:14.04 /bin/echo 'Hello world' → Unable to find image 'ubuntu:14.04' locally Trying to pull repository docker.io/library/ubuntu ... 14.04: Pulling from docker.io/library/ubuntu 324d088ce065: Pull complete 2ab951b6c615: Pull complete 9b01635313e2: Pull complete 04510b914a6c: Pull complete 83ab617df7b4: Pull complete Digest: sha256:b8855dc848e2622653ab557d1ce2f4c34218a9380cceaa51ced85c5f3c8eb201 Status: Downloaded newer image for docker.io/ubuntu:14.04 Hello world
とりあえず動いた。
ユーザをdockerrootグループに追加
下記の話はあるみたいだが、とりあえずユーザをdockerグループに追加してみる。 qiita.com
ただし、dockerrootグループになっているようだった。
cat /etc/group root:x:0: bin:x:1: : 略 : dockerroot:x:991:
# グループに追加 sudo gpasswd -a username dockerroot # 再実行(結局ダメだった) docker run ubuntu:14.04 /bin/echo 'Hello world' → /usr/bin/docker-current: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See '/usr/bin/docker-current run --help'.
下記の話らしい。 qiita.com
ls -l /var/run/docker.sock → srw-rw---- 1 root root 0 5月 15 22:36 /var/run/docker.sock sudo chown root:dockerroot /var/run/docker.sock
再度、一般ユーザで実行
docker run ubuntu:14.04 /bin/echo 'Hello world' → /usr/bin/docker-current: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See '/usr/bin/docker-current run --help'.
同じエラーだった。なぜだろう・・・。 とりあえず、/var/run/docker.sockはdocker再起動後にはroot:rootに戻ってしまうことと、root:dockerrootになっていてもダメみたいだ。
qiita.com こんな記事を見つけたので、試してみたけど、結果は変わらずだった・・・。
sudo groupadd docker sudo gpasswd -a username docker sudo systemctl restart docker
できないと思ったけど、記事の末尾に書いてあるとおり、ログインし直したらdockerコマンドが使えるようになった!!
ついでに、docker-composeもインストールした。
sudo yum install docker-compose