web-dev-qa-db-ja.com

Docker:Dockerコンテナで許可されていない操作を回避する方法

必要なすべてのファイルシステムをバックアップしてsles12マシンのdockerイメージを1つ作成し、tarファイルを1つ作成しました。 Dockerイメージを作成するには、次のコマンドを実行します-

cat fullbackup.tar | docker import - sles_image

その後、以下のコマンドを使用してコンテナーでdockerimageを実行します-

docker run --net network1 -i -t sles_image /bin/bash

注-私はすでにこのDockerコンテナ(必要なIPアドレス)にネットワークを設定しています。

今、私のdockerコンテナーでは、いくつかのアプリケーションが既に構成されています。そのアプリケーションは、このdockerイメージを作成したsles12マシンで使用できるためです。これらのカスタムアプリケーションは、内部で modprobe のようないくつかのカーネル低レベルコマンドを実行しています。

しかし、アプリケーションを起動すると、アプリケーションは正しく起動します。私はこのエラーに直面しています-

操作は許可されていません

このエラーが発生しないように、正しいアクセス許可を与えるにはどうすればよいですか?

5
kit

ランタイム権限とLinux機能 でDockerコンテナを設定してみてください。

docker run-特権

13

Dockerの哲学は、アプリケーションをマイクロサービスに分割し、マイクロサービスごとにコンテナーを使用することです。

Dockerコンテナーストレージは永続的ではありません。コンテナを削除すると、データが失われます。データを保持するには、Dockerボリュームを使用するか、マウントをバインドする必要があります。

さて、すべてをやり直して、Dockerコンテナにいくつかのサービスを入れたい場合(非推奨)、少なくともDockerfileを使用してベースイメージから作成することをお勧めします。 DockerHub(ライブラリ)で利用可能なこれらのベースイメージは、コンテナー化された環境用に最適化されており、そのイメージに適合すると思われるサービスをインストールおよび構成できます。

0
Farhad Farahi