docker で systemctl を使用してサービスを開始する際のエラーの解決方法の詳細な説明

docker で systemctl を使用してサービスを開始する際のエラーの解決方法の詳細な説明

Docker バージョン:

[root@localhost gae_proxy]# docker バージョン
クライアント:
 バージョン: 1.10.3
 APIバージョン: 1.22
 パッケージバージョン: docker-common-1.10.3-46.el7.centos.10.x86_64
 Goバージョン: go1.6.3
 Git コミット: d381c64-unsupported
 作成日: 2016年8月4日 木 13:21:17
 OS/アーキテクチャ: linux/amd64

サーバ:
 バージョン: 1.10.3
 APIバージョン: 1.22
 パッケージバージョン: docker-common-1.10.3-46.el7.centos.10.x86_64
 Goバージョン: go1.6.3
 Git コミット: d381c64-unsupported
 作成日: 2016年8月4日 木 13:21:17
 OS/アーキテクチャ: linux/amd64

画像バージョン

[root@b2ca5610d3da /]# cat /etc/redhat-release
CentOS Linux リリース 7.2.1511 (コア) 

docker で systemctl を介してサービスを開始すると、常に「D-Bus 接続の取得に失敗しました: 操作は許可されていません」などのエラー メッセージが報告されます。

[root@25d27693a24d ~]# systemctl sshd を起動します
D-Bus 接続に失敗しました: 操作は許可されていません

解決策は、docker の実行時に /usr/sbin/init を実行することです。例えば:

[root@localhost /]# docker run -tid --name hadoopbase centos/hadoopbase:v001 /usr/sbin/init

このように起動しているコンテナは、systemctl を使ってサービスを起動することができます。systemctl 経由で実行した場合にエラーが発生する問題は CentOS7.2 で解決されたという人もいますが、実際の運用ではまだそのような問題に遭遇します。

もう 1 つの解決策は、Dockerfile を使用してイメージ ファイルを生成するときに、CMD 経由で /usr/sbin/init コマンドを実行することです。つまり、CMD ["/usr/sbin/init"];

参考: https://github.com/docker/docker/issues/7459
参考:

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • CentOS 7 での Docker プロキシの設定 (Linux での Systemd サービスの環境変数設定)
  • docker システムコマンドセットの使用

<<:  MySQL の order by ステートメントの最適化方法の詳細な説明

>>:  Jupyter Notebook で JavaScript を実行する方法

推薦する

Nginx ドメイン名 SSL 証明書の構成 (Web サイトの http を https にアップグレード)

序文HTTP と HTTPS日常生活でよく使われる URL は、おおまかに次の 2 種類に分けられま...

JavaScript 関数の高度な説明

目次関数定義方法関数呼び出し(6種類)これは問題を指摘している厳密モード高階関数閉鎖再帰: 自分自身...

Linux の検索ツールの代替となるフレンドリーなツール

find コマンドは、指定されたディレクトリ内のファイルを検索するために使用されます。引数の前の文字...

border-radius 値の設定に関する質問

問題記録今日はプログレスバーに似た小さなコンポーネントを完成させるつもりでした。プロトタイプは次のよ...

MySQLの基礎知識学習ノート

データベースを表示show databases;データベースを作成するDATABASE データベース...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

ストリーマーボタンの効果を実現するCSS3アニメーション

CSS3 を学習する過程で、CSS3 属性を使用すると多くのクールな効果を簡単に実現できることが分か...

MySQL 5.7.17 とワークベンチのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.17ワークベンチのインストールと設定方法を参考までに紹介します。具...

CocosCreatorプロジェクト構造の仕組みの詳細な説明

目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...

MySQLの共通関数の概要

序文: MySQL データベースは、よく使用される集計関数、日付および文字列処理関数など、幅広い関数...

JavaScript parseInt() と Number() の違いのケーススタディ

学習目標: parseInt() と Number() という 2 つの関数は、文字列をデータ型に変...

momentJs を使用してカウントダウン コンポーネントを作成する (サンプル コード)

今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりで...

ウェブページの背景画像を伸ばす2つの方法

解決策は2つあります。 1つはCSSで、background-size:coverを使用して画像の伸...

ウェブサイト制作におけるオンライン広告の新しいインタラクティブ体験(グラフィックチュートリアル)

インターネット時代が成熟するにつれて、オンライン広告の発展も加速しています。圧倒的な広告収入と完璧な...

要素テーブルからヘッダーを削除する方法

show-header属性を使用したドキュメントのヒントshow-header <el-テーブ...