SHOYAN BLOG

I am a pragmatic programmer.

Dockerでsystemctlでserviceが起動できない

centos7からsystemctlでserviceを起動するようになったが、Dockerで起動すると「Failed to get D-Bus connection: No connection to service manager.」というエラーメッセージがでて起動できないという問題が起こった。

1
2
3
$ docker run -it centos:centos7 /bin/bash
# systemctl
Failed to get D-Bus connection: No connection to service manager.

サービスを起動するためには以下の方法でコンテナを起動すればよい。

1
$ docker run --privileged -d --name httpd centos:centos7 /sbin/init

起動したコンテナでhttpdをinstallして起動する。

1
2
3
4
$ docker exec -it httpd /bin/bash
# yum install httpd -y
# systemctl enable httpd.service
# systemctl start httpd.service

プロセスを確認。起動できている。

1
2
3
4
5
6
7
8
9
ps aux | grep apache

bash-4.2# ps aux | grep apache
apache     168  0.0  0.3 221912  4028 ?        S    05:41   0:00 /usr/sbin/httpd -DFOREGROUND
apache     169  0.0  0.3 221912  4028 ?        S    05:41   0:00 /usr/sbin/httpd -DFOREGROUND
apache     170  0.0  0.3 221912  4028 ?        S    05:41   0:00 /usr/sbin/httpd -DFOREGROUND
apache     171  0.0  0.3 221912  4028 ?        S    05:41   0:00 /usr/sbin/httpd -DFOREGROUND
apache     172  0.0  0.3 221912  4028 ?        S    05:41   0:00 /usr/sbin/httpd -DFOREGROUND
root       180  0.0  0.0   9044   808 ?        S+   05:49   0:00 grep apache

yunanoさんの記事が大変参考になった。

Dockerについて学ぶ

Dockerについてはいくつか書籍が出ているが、プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化が良さそうに思う。
目次を見てみると、インフラの基礎知識からDockerfileを使ったDockerの構築、Docker Composeの使い方、Docker Swarmを使ったマルチホスト環境でのDocker運用まで網羅してある。
また、Dockerの基礎的なことに加え、インフラの基礎とコンテナ仮想化技術についても説明してあるのでDockerを学びつつもインフラについても学べそうだ。

目次

第1章: 抑えておきたいシステム / インフラの知識
第2章: コンテナ仮想化技術とDocker
第3章: Dockerのインストールと基本コマンド
第4章: Dockerfileを使ったコードによるサーバ構築
第5章: Dockerイメージの共有 - Docker Registry
第6章: 複数コンテナの一元管理 - Docker Compose
第7章: マルチホスト環境でのDocker運用 - Docker Machine, Docker Swarm
第8章: クラウドでのDocker運用

Dockerの記事一覧

SHOYAN BLOGではDockerについていくつか記事を書いているので興味があれば見てほしい。

Dockerのサンプルコード

githubでDockerを使ったサンプルコードを公開しているのでこちらも参考にしてほしい。

DockerでRubyアプリケーションをホスティングするサンプルコード
* theme-builder

docker-composeを使ってPHPコンテナとMySQLコンテナを連携させるサンプルコード
* docker-compose-with-link-sample

nginxとrubyをChefを使ってインストールするサンプルコード
* nginx-and-ruby-on-docker

よく読まれている記事

Comments