3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

dockerにPostgresqlをインストールして初期化した場合のエラーメッセージ対策

Posted at

CentOS7でのdockerの勉強の覚書です。

dockerコンテナにPostgresqlをインストールした際のエラーメッセージ

以下のメッセージが出力されました。
「Failed to get D-Bus connection: No connection to service manager」
色々と調査した結果、CentOS 7ではinitデーモンがsystemdに変わったため、
centos:centos7のDockerイメージを使用した場合に出力されるエラーメッセージのようです。

エラーメッセージの回避策

回避策として、dockerコンテナを作成する際に以下の点に留意する必要があるようです。
・ 特権モードにする(--privileged)
・ コンテナで起動されるコマンドは/sbin/initにする

まず、上記の点を考慮してdockerコンテナを作成する為に、nsenterをインストールする必要が
あるとのことなので、以下のコマンドにてインストールを実行します。

docker run --privileged --rm -v /usr/local/bin:/target jpetazzo/nsenter

インストール後に以下のコマンドにてdockerコンテナを作成、実行します。

docker run --privileged -d -p 80:80 --name {コンテナ名} centos:centos7 /sbin/init

上記方法で作成したコンテナへの接続は通常の方法ではダメとのことなので、以下の方法で接続します。

docker exec -it {コンテナ名} /bin/bash

コンテナ実行後に、以下のコマンドを実行します。

yum install httpd -y
systemctl enable httpd.service
systemctl start httpd.service

Postgresqlのインストール手順

■ wgetコマンドのインストール

yum -y install wget

■ 最新版のPostgresqlのダウンロード

wget http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm

■ Postgresqlのインストール

rpm -ivh pgdg-centos94-9.4-1.noarch.rpm
yum -y install postgresql94-server postgresql94-devel postgresql94-contrib

■ データベースクラスタ初期化 ← ここでエラーメッセージが出力されてた・・・。

/usr/pgsql-9.4/bin/postgresql94-setup initdb

■ postgresサービス化 / 開始

systemctl enable postgresql-9.4
systemctl start postgresql-9.4

余談

今回のエラーメッセージを解決させるための調査もろもろに1週間以上かけてしまいました。
(実作業時間でいうと1日程度かもしれませんが・・・。)
今後はこの程度のエラーの調査はさくっと終わらせたいものです。

参考資料

http://qiita.com/yunano/items/9637ee21a71eba197345
http://www.hack-log.net/entry/2015/04/26/100000

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?