dockerサービス仮死ソリューション
2385 ワード
概要 dockerを使用してサービスを導入する場合、次のコマンドを使用する場合があります. docker psはコンテナの状態が正常であることを示しているが、対外サービスは を利用できない. docker stats反応なし docker stop CONTAINER_IDには何の反応もない docker restart CONTAINER_IDも何の反応もない docker exec -it –user root CONTAINER_ID/bin/bashも何の反応もない docker logs CONTAINER_ID--tail 111-fも何の反応もない docker-composeコマンドも応答タイムアウトを提示し、 は使用できません.
本文の内容は偽のdockerサービス を手動でクリーンアップ
原文転送ゲート
1、手動で仮死のdockerサービスを整理する
1.1仮死のdockerサービスを見つける
1.2まずdockerが持参したコマンドを使用してコンテナを停止してみる
1.3 dockerディレクトリのコンテナ情報を手動で検索し、削除する
dockerデフォルトディレクトリ:
【CONTAINER_ID】にて当該仮死サービスの目次を見つける
ここで削除すると、コンテナに他のディレクトリがマウントされているため、次のエラーが表示される可能性があります.
このとき容器対応のマウントディレクトリを調べてみます
次にマウント解除
このステップでunmoutができない場合は、ディレクトリを使用するプロセスを探してみてください.
関連プロセスがある場合は、関連プロセス番号を直接kill-9プロセス番号に記録します.
この時点でディレクトリ削除コマンドを再実行します
この時点で削除できます
1.4再びdockerの命令で容器を停止してみる
または
linuxプロセス管理コマンドを使用してコンテナプロセスを終了
プロセスを検索するには、次の手順に従います.
フィルタされたプロセス情報を強制的に殺す:
1.5 dockerサービスステータスの再確認
このサービスはすでに乾いていることがわかります.
1.6最も粗暴な解決策は以下の通りである.
docker.serviceを直接停止して、再起動したら自然にいいですが、サービスが多すぎると、このように使うことをお勧めしません.遅すぎて、他のサービスに影響します.
本文の内容は
原文転送ゲート
1、手動で仮死のdockerサービスを整理する
1.1仮死のdockerサービスを見つける
docker ps
コマンドを実行してコンテナID【CONTAINER_ID】を見つける1.2まずdockerが持参したコマンドを使用してコンテナを停止してみる
docker stop 【CONTAINER_ID】
止められないことに気づいた1.3 dockerディレクトリのコンテナ情報を手動で検索し、削除する
dockerデフォルトディレクトリ:
/var/lib/docker
すべてのdockerコンテナの情報は/var/lib/docker/containers
ディレクトリにマウントされています【CONTAINER_ID】にて当該仮死サービスの目次を見つける
ll /var/lib/docker/containers | grep 【CONTAINER_ID】
cd /var/lib/docker/containers
rm -rf
ここで削除すると、コンテナに他のディレクトリがマウントされているため、次のエラーが表示される可能性があります.
rm: "/var/lib/docker/containers/ /secrets":
"/var/lib/docker/containers/ /shm":
このとき容器対応のマウントディレクトリを調べてみます
cat /proc/mounts |grep "docker" |grep "【CONTAINER_ID】"
次にマウント解除
umount /data/sys/var/docker/containers/ /secrets
umount /data/sys/var/docker/containers/ /shm
このステップでunmoutができない場合は、ディレクトリを使用するプロセスを探してみてください.
lsof |grep " "
関連プロセスがある場合は、関連プロセス番号を直接kill-9プロセス番号に記録します.
この時点でディレクトリ削除コマンドを再実行します
ll /var/lib/docker/containers | grep 【CONTAINER_ID】
cd /var/lib/docker/containers
rm -rf
この時点で削除できます
1.4再びdockerの命令で容器を停止してみる
docker stop 【CONTAINER_ID】
または
docker rm -f 【CONTAINER_ID】
またはdocker kill --signal=SIGINT 【CONTAINER_ID】
変更サービスを停止できない場合は、次の手順に従います.linuxプロセス管理コマンドを使用してコンテナプロセスを終了
プロセスを検索するには、次の手順に従います.
ps -ef | grep【CONTAINER_ID】
フィルタされたプロセス情報を強制的に殺す:
kill -9 PID
1.5 dockerサービスステータスの再確認
docker ps
このサービスはすでに乾いていることがわかります.
1.6最も粗暴な解決策は以下の通りである.
docker.serviceを直接停止して、再起動したら自然にいいですが、サービスが多すぎると、このように使うことをお勧めしません.遅すぎて、他のサービスに影響します.
sudo service restart docker