次のように起動されたコンテナに「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
これについては、今日や明日詳しく説明します。