[シリーズ]ドッキングウィンドウのドッキングウィンドウコンテナの後に100%のagettyではプロセスのCPU占有率を実行します

最近ドッキングウィンドウコンテナを使用する場合は、100%までagettyでは、プロセスのCPU使用率のホストを発見しました。

 

Googleでその理由は、次を検索し、この問題の原因は、「/ sbinに/ initを」使用している場合、パラメータを「--privileged」「ドッキングウィンドウの実行」の実行コンテナを使用することです。

コンテナを起動し、ホストの白紙委任許可を得るために--privilegedパラメータ、同等のドッキングウィンドウコンテナを追加するために/ sbinに/ initを使用してください。この場合、ドッキングウィンドウの内側のinitホスト初期化コンテナーは、混乱の原因となります。

#通過に対するGoogleの参照:

 私はそれが(事実、あなたはそれのクールは、先に行くと、お使いのシステムリソースを管理し、それを与えるためにすることをお使いのシステムにこの第二のinitプロセスを言っているので危険だ、特に以来、--privileged使用せずに、それらのすべての私のテストを行ってきましただけでなく、それらへのアクセス)。私はいつも非常に慎重に使用するためのハンマーとして--privileged考えます。

 

コンテナを起動したときの安全性の理由から、ドッキングウィンドウコンテナシステムにのみいくつかの一般的なLinuxの権限を持っている、それがすべての権限本当のrootユーザーを持っていません。--privileged = trueパラメータは、ドッキングウィンドウコンテナは、すべての権利Linuxのrootユーザーを持つことができます。

 

この問題を解決するために、それ以降のバージョンでドッキングウィンドウのドッキングウィンドウの実行には、2つのオプションパラメータ「--cap-追加」および「--capドロップ」を追加しました。

--cap-追加:GET権限デフォルトのLinuxを超えて

--capドロップ:デフォルトのLinuxの権限を放棄

 

ドキュメントは、ドッキングウィンドウコンテナは、既定のアクセス許可を持っている、ドッキングウィンドウの公式ウェブサイトから見つけることができると、次のように--cap-addが拡大する許可を得ることができます。

デフォルト権限:

機能キー

機能の説明

SETPCAP

プロセス能力を変更します。

MKNOD

mknod(2)を使用した特殊ファイルを作成します。

AUDIT_WRITE

カーネル監査ログへの書き込みを記録。

CHOWN

ファイルのUIDとGIDへの任意の変更を行います(chownコマンド(2)を参照)。

NET_RAW

使用RAWとPACKETソケット。

DAC_OVERRIDE

バイパスファイルの読み取り、書き込み、および権限チェックを実行します。

FOWNER

通常、必要な操作上の権限チェックのバイパス

ファイルのUIDと一致するプロセスのファイルシステムUID。

FSETID

明らかにset-user-IDとset-group-ID許可ビットにしないでください

ファイルが変更されたとき。

殺します

信号を送信するためのバイパス権限チェック。

SETGID

プロセスのGIDと補助の任意の操作を行います

GIDリスト。

SETUID

プロセスのUIDに対する任意の操作を行います。

NET_BIND_SERVICE

インターネットドメインの特権ポートにソケットをバインド

(1024未満のポート番号)。

SYS_CHROOT

使用のchroot(2)、ルートディレクトリを変更。

SETFCAP

設定ファイル機能を提供します。

--cap-ADD権限が取得しました:

機能キー

機能の説明

SYS_MODULE

ロードとアンロードカーネルモジュール。

SYS_RAWIO

I / Oポートの動作(IOPL(2)とはioperm(2))を行います。

SYS_PACCT

使用ACCT(2)、オンまたはオフに占めるスイッチ処理。

SYS_ADMIN

システム管理操作の範囲を実行します。

SYS_NICE

昇給プロセスのnice値(ナイス(2)、のsetpriority(2))と、

任意のプロセスのnice値を変更します。

SYS_RESOURCE

リソース制限をオーバーライドします。

SYS_TIME

設定されたシステムクロック(settimeofday(2)、STIME(2)adjtimex(2))。

リアルタイム(ハードウェア)クロックを設定。

SYS_TTY_CONFIG

使用vhangup(2); 様々な特権のioctl(2)操作を用います

仮想端末上。

audit_control

Enable and disable kernel auditing; change auditing filter rules;

retrieve auditing status and filtering rules.

MAC_OVERRIDE

Allow MAC configuration or state changes.

Implemented for the Smack LSM.

MAC_ADMIN

Override Mandatory Access Control (MAC). Implemented for

 the Smack Linux Security Module (LSM).

NET_ADMIN

Perform various network-related operations.

SYSLOG

Perform privileged syslog(2) operations.

DAC_READ_SEARCH

Bypass file read permission checks and directory read and

execute permission checks.

LINUX_IMMUTABLE

Set the FS_APPEND_FL and FS_IMMUTABLE_FL i-node flags.

NET_BROADCAST

Make socket broadcasts, and listen to multicasts.

IPC_LOCK

Lock memory (mlock(2), mlockall(2), mmap(2), shmctl(2)).

IPC_OWNER

Bypass permission checks for operations on System V IPC objects.

SYS_PTRACE

Trace arbitrary processes using ptrace(2).

SYS_BOOT

Use reboot(2) and kexec_load(2), reboot and load a new kernel

for later execution.

LEASE

Establish leases on arbitrary files (see fcntl(2)).

WAKE_ALARM

Trigger something that will wake up the system.

BLOCK_SUSPEND

Employ features that can block system suspend.

         所以,在运行容器时,可以不用--privileged参数的尽量不用,用--cap-add参数替代。如果必须使用--privileged=true参数的,可以通过在宿主机和容器中执行以下命令将agetty关闭。

shell> systemctl stop [email protected]

shell> systemctl mask [email protected]

 

 

参考资料:

https://github.com/docker/docker/issues/4040

https://docs.docker.com/engine/reference/run/

发布了111 篇原创文章 · 获赞 28 · 访问量 4万+

おすすめ

転載: blog.csdn.net/weixin_42697074/article/details/103737321