RHEL / CentOS 7でchrootを偽にする方法

RHEL / CentOS 7でchrootを偽にする方法

RHEL環境の生の「仮想化」を行いたい。これは、ハードコアパスが次のような複数のバイナリを実行する必要があるためです。/etc/conf目次。実際には、同じディレクトリに配置する必要があるさまざまな構成が競合するいくつかのバイナリがあります。

したがって、confを読み取るアプリケーションAを実行したい/etc/conf、confを読み取るアプリケーションBを実行したいが、実際には現在の項目を「変更」するスクリプトを提供して現在の項目を読んでいると「/mnt/etc/conf信じます」。読み取るディレクトリの場所を指定して1つを選択します。/etc/conf//mnt

このタイプのタスクはfakechrootを使用して実行できると思いましたが、もう使用できません。そうですか?この機能を提供するより良い方法はありますか?

ベストアンサー1

ドッカーコンテナを試してみてください。最も簡単な方法(構文を学ぶ必要はありませんDockerfile)は、dockerをインストールしてからdocker run -it centos:<version>(このユーティリティはRHELバージョン用に書かれている)コンテナ内のすべてのバイナリと実行可能ファイルを設定することです。必要に応じてシェル/コンテナを終了し、docker psコンテナIDの検索を使用します。

たとえば、

[root@website ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                  PORTS                   NAMES
42f454cc1c71        centos:latest               "/bin/bash"              About an hour ago   Up About an hour                                sick_davinci

次に、次docker commitを使用して画像を保存します。

docker commit 42f454cc1c71 baseImage

firstUtil次に(または何でも)実行します。

docker run -it --rm -v /srv/configs/firstUtil:/etc/conf baseImage /path/to/firstUtil

次に、次を実行しますsecondUtil

docker run -it --rm -v /srv/configs/secondUtil:/etc/conf baseImage /path/to/secondUtil

その他など

上記の各docker runコマンドでは、設定したイメージに基づいてコンテナからコマンドを実行し、--rmそのコマンドが終了するとコンテナが削除されます。各コマンドの実行はコンテナで初めて実行されるため、--rmユーティリティが何かを変更しない限り、ユーティリティを一度実行しても次の実行に影響を与えないようにすることが便利です。/etc/conf

docker runこれらのコマンドをスクリプトまたはシェルエイリアスに入れることができます(入力がより簡単な場合)。

デフォルトでは、Dockerはホストのファイアウォールとルーティングテーブルも変更しようとします。

おすすめ記事