OpenSuse 12 に基づいて Docker コンテナーをセットアップし、いくつかの追加ファイルをインストールし、いくつかのインストーラー バイナリをコンテナーにコピーしました。これまでのところ、すべて問題ありません。
コンテナーの実行中のイメージ内から、前述のセットアップ プログラムを実行する必要がありますが、これには uuid.socket を起動して実行する必要があります - uuid.socket が正しく動作するためには systemctl が必要で、これにより次のようなエラーが発生します。
hxehost:/usr/sap/SRCFiles # systemctl
Failed to get D-Bus connection: Unknown error -1
次のようにドッカーコンテナを開始しました:
docker run -h hxehost -i -t f3096b0aa964 /bin/bash
いくつかの投稿によると、アプリケーション コンテナーではなくマシン コンテナーを開始する必要があります。
ここで私が間違っていることを誰か教えてもらえますか??? docker コンテナー内で systemctl を動作させるにはどうすればよいですか?
リンクされたヒントによると、このコマンドでコンテナを起動しようとしましたが、役に立ちませんでした
docker run --privileged --rm -ti -e 'container=docker' -h hxehost --network="bridge" --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro siliconchris/hxe:v0.0.2 /bin/bash
これを行うと、systemctl はまったく同じエラーを返します。
/bin/bash の代わりに/sbin/initを開始すると、非常に多くのサービスが開始されていることがわかります (wicked、login、module などの一部は失敗します)。最終的に、コンテナーはログインを提示します。ログイン後、systemctl を実行できるようになり、すべてのサービスとそれぞれの状態が表示されます。
さて、私の次の質問は次のとおりです。このアプローチはまったく実現可能ですか???
よろしくお願いします、
クリス
このイメージのリポジトリは、Docker 内の SAP HANA Express Edition にあります。