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サービスを見つける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