私はFedora 36を使用しており、コンテナを次のように実行しています。
docker run --user 0 --rm \
--privileged \
--cap-add=SYS_PTRACE \
--volume=$(pwd)/.env:/legacy/app/.env \
--volume=$(pwd)/start.sh:/legacy/app/start.sh \
--volume=$(pwd)/nginx.conf:/legacy/app/nginx.conf \
--volume=$(pwd)/php-fpm.conf:/legacy/app/php-fpm.conf \
--volume=$(pwd)/.nginx:/legacy/app/.nginx \
--volume=$(pwd)/.php-fpm.d:/legacy/app/.php-fpm.d \
--volume=$(pwd)/.php.ini.d/php.ini:/etc/php.d/php.ini \
--entrypoint "/legacy/app/start.sh" \
--name test -p 8080:8080 \
test:0.2
ただし、コンテナ内では実行できず、lsof
常に「停止」し、出力は返されません。
次のコマンドはコンテナ内で提供されます。
ps aufx | grep master
root 67 0.0 0.0 10708 2276 pts/0 S+ 19:06 0:00 \_ grep --color=auto master
root 24 0.0 0.0 470572 11400 ? Ss 18:03 0:00 php-fpm: master process (/legacy/app/php-fpm.conf)
root 28 0.0 0.0 39612 7820 ? S 18:03 0:00 nginx: master process nginx -c /legacy/app/nginx.conf
ls -la /proc/28/fd/1
l-wx------. 1 root root 64 Oct 29 18:03 /proc/28/fd/1 -> pipe:[2444664]
lsof | grep 2444664
whoami
root
何ができますか?
答え1
今日も同様の問題が発生しました。私の場合、Dockerコンテナ内の開かれたファイルのulimitが高すぎたからです。
以下を実行して確認できます。
docker run --rm ubuntu bash -c "ulimit -n"
(私の場合のように)10億以上であれば、このような問題が発生します。
私は私/etc/docker/daemon.json
(参照ここ参考用):
{
"default-ulimits": {
"nofile": {
"Hard": 1048576,
"Name": "nofile",
"Soft": 1048576
}
}
}
まだ一つあります。GitHubの問題を開く基本限度に関するトピックが議論されたが、最終的な結論に達していないようだ。