「インストール - Docker CE」の版間の差分

ナビゲーションに移動 検索に移動
300行目: 300行目:
yumの処理は、ユーザに対して"yes or no"を訊ねる場合があるので、自動的にyesと答えないと途中でイメージ作成が止まるので、以下のように記述する。<br>
yumの処理は、ユーザに対して"yes or no"を訊ねる場合があるので、自動的にyesと答えないと途中でイメージ作成が止まるので、以下のように記述する。<br>
  CMD yum update –y
  CMD yum update –y
<br><br>
== エラー関連 ==
==== openSUSEコンテナ ====
openSUSEコンテナをDockerコンテナとして動作する時、以下のようなエラーが出力されてsystemdが起動できない。<br>
Failed to connect to bus: No such file or directory.
<br>
これは、Dockerコンテナを実行する時、initシステムを実行していないからである。<br>
<br>
<code>systemctl</code>コマンドは、dbusを介してsystemdと通信するプロセスである。<br>
openSUSEコンテナでは、dbusとsysvinitがインストールされていないため(dbusやsystemdが動作していない)、<code>systemctl</code>コマンドは失敗する。<br>
<br>
Dockerコンテナで<code>systemctl</code>を実行するには、その依存関係をインストールして、特殊なコマンドを実行する必要がある。<br>
<br>
dockerfileを作成および使用して解決する手順を、以下に記載する。<br>
まず、以下のようなdockerfileを作成する。<br>
FROM opensuse/leap:15.3
MAINTAINER Annonymas
RUN zypper update -y
RUN zypper install -y dbus-1 systemd-sysvinit
RUN cp /usr/lib/systemd/system/dbus.service /etc/systemd/system/; \
    sed -i 's/OOMScoreAdjust=-900//' /etc/systemd/system/dbus.service
VOLUME ["/sys/fs/cgroup", "/run"]
CMD ["/sbin/init"]
<br>
次に、作成したdockerfileからDockerイメージを作成する。<br>
docker build -t suse153i .
<br>
Dockerコンテナを実行する。<br>
sudo docker run -d --name=suse153c --hostname suse153 --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro suse153i
sudo docker exec -it suse153c /bin/bash
<br>
openSUSEコンテナにおいて、systemctlコマンドが実行できるかどうかを確認するには、以下のコマンドを実行する。<br>
systemctl list-units
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:SUSE]]
[[カテゴリ:CentOS]][[カテゴリ:SUSE]]

案内メニュー