kitchen-dockerで動くCentOS7 Dockerコンテナ


動く:SSHが繋がり、kitchen-docker経由でserviceコマンドが使える、chef_zeroのプロビジョニングが動作する

.kitchen.yml
  - name: centos-7.0
    driver_config:
      image: 2k0ri/centos7-systemd
      privileged: true
      run_command: /sbin/init; sleep 3

解説

2k0ri/centos7-systemdコンテナのDockerfileは以下です。

Dockerfile
FROM centos:centos7
MAINTAINER 2k0ri [email protected]

RUN yum swap -y fakesystemd systemd
RUN yum install -y initscripts

CMD ["/sbin/init", "3"]

systemdを復活させるためにCentOS 7のDockerコンテナ内でsystemdを使ってサービスを起動する - Qiitaの手順に則っています。

/sbin/initでsystemdのサービスが起動するため、sshdも立ち上がるはずなのですが
実行直後は起動が完了しておらず、接続に失敗する様子。

OSXからyungsang/coreos-alphaにソケット経由でコンテナを立てている手元の環境では
パフォーマンスによってばらつきがあり、最低3秒、最長15秒のsleepが必要でした。