Jenkinsのmasterコンテナを立ててそのコンテナからslaveコンテナを立てたいなと思って、じゃあmasterコンテナの中にdocker入れてdocker-on-docker状態にするのかなと思ってたけど、別の方法が紹介されてたのでメモ

docker.sockとdockerをマウント

// docker.sock
$ ls -l /var/run/docker.sock
srw-rw----    1 root     docker           0 Nov 12 03:51 /var/run/docker.sock

// docker
$ which docker
/usr/local/bin/docker

// マウントする(docker-compose.ymlに書く場合)
volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - /usr/local/bin/docker:/usr/bin/docker

使ってみる

// ホスト側
docker@default:~$ docker ps | awk '{print $1}'
CONTAINER
9cacd65d5dc4
84a64a8885a3
38f38d662b26
a4401eb7472b

// コンテナ側
docker@default:~$ docker exec -it kontena bash

jenkins@kontena:/$ docker ps | awk '{print $1}'
CONTAINER
9cacd65d5dc4
84a64a8885a3
38f38d662b26
a4401eb7472b

その後jenkinsジョブにdocker runとか書いてみたらコンテナ起動しました

追記

Docker for Mac beta compatibility #431

Docker for Macはサポート外?らしい雰囲気