ubuntu:xenial(macOSホスト)を実行しているDockerコンテナでmemlockのulimitを設定すると、「操作は許可されていません」エラーが発生します。

ubuntu:xenial(macOSホスト)を実行しているDockerコンテナでmemlockのulimitを設定すると、「操作は許可されていません」エラーが発生します。

次のように起動されたコンテナに「memlock」システム制限を設定する際に問題があります。

   docker run -it ubuntu:xenial

簡単に言えば、私が試したことは次のとおりです。

Bashターミナルセッション1で:

docker run -it ubuntu:xenial

/etc/security/limits.conf次の行を含めるように設定 * hard memlock unlimited * soft memlock unlimited

ファイルの最後に。

次に、ホストシステムの他のbash端末で同じコンテナに「bash in」して、次のことを試してください。

root@6ae391cfb6de:/# ulimit -l unlimited

次のエラーが発生します。

bash: ulimit: max locked memory: cannot modify limit: Operation not permitted

詳細をコピー

私はMacOS Sierra 10.12.6 / Dockerバージョン18.03.1-ce、バージョン9ee9f40で実行しています。

シェル#1

macOS> ulimit -l # output of this command is 'unlimited' which shows host ulimits are not the issue 出力:無制限

MacOS> docker run -it ubuntu:xenial

次のコマンドは、上記のコマンドで始まるxenial-docker-instanceのMacのbashシェル#1で実行されます。

 cd  # to home directory
 grep limit .bashrc      # check it any session limits are defined at shell startup -- nothing found

 cat >> /etc/security/limits.conf <<EOF
 *                hard    memlock         unlimited
 *                soft    memlock         unlimited
 EOF

Macのシェル#2

containerId=`docker ps | grep ubuntu | sed -e's/ .*//'`  # assumes you only have one docker instance of ubuntu running
docker exec -t -i $containerId  bash                     # 'bash in' to ubuntu running container launched in shell #2
ulimit -l 
# output  is 82000    ... huh?
#
# try setting
ulimit -l unlimited
#
#  Nope.. i get this error: 
#       bash: ulimit: max locked memory: cannot modify limit: Operation not permitted

終了:詳細のコピー

どんなアドバイスやガイダンスにも感謝します。

ベストアンサー1

私の友人Chris Cellucciが私に答えを与えました。 run with --privileged

これについては、今日や明日詳しく説明します。

おすすめ記事