私が初めてdockerを使用したときは、dockerfileやdocker-composeを使用してサービスをオーケストレーションしませんでした。直接docker runを使用してコンテナを起動しました。その結果、構成ファイルが間違っていたり、誤って停止したりすると、サービスが起動できなくなりました。この時点では心配しないでください。次の方法を使用して、構成ファイルだけでなく、起動コンテナのポート情報やその他の構成情報も変更して、コンテナ内のファイルとデータが引き続き存在するようにすることができます。 1. コンテナ内の構成情報を変更する ここでは、nginx の起動を例に挙げます。たとえば、docker run を使用して nginx コンテナを作成します。その結果、docker exec ** bash を使用して内部の nginx 構成ファイルが変更され、nginx コンテナが起動しなくなります。この場合、どうすればよいでしょうか。 #まず次のディレクトリに入ります cd /var/lib/docker/overlay2 #設定ファイルを見つける find ./ -name nginx.conf ./a45cd97113877fb480f66e0d982a594c7b18f2035c16e1f7eb687eef15552272/diff/etc/nginx/nginx.conf ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/diff/etc/nginx/nginx.conf ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/マージ済み/etc/nginx/nginx.conf #次に、nginx.conf があるディレクトリに移動します cd ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/diff/etc/nginx #たとえば、私のnginx設定ファイルはconf.dフォルダにあります cd conf.d デフォルト.conf #そこにある設定情報が自分の nginx 設定情報であるかどうかを確認します。そうであれば、変更します。そうでない場合は、同じように find で見つかった他のディレクトリで探します。vim *.conf #設定ファイルを変更したら、直接起動します。たとえば、私のnginxコンテナ名はapg_nginxです docker で apg_nginx を起動します 2. docker実行時に設定情報を変更する この場合、たとえば、自分のコンテナが停止していて、他のサービスが自分のコンテナによってマップされたポート番号を使用したい場合、または自分のコンテナがその時点で実行構成情報を変更したい場合、どうすればよいでしょうか。 #次のディレクトリに入ります cd /var/lib/docker/containers 096ed809576e948ada99be65faa181b7f926dd0e655c4c373169305a1954c115 d570bc34c3bb5955ec4c336ad3eeb6105ed49e33e87b8dfd35da3c907d074fdc 662d928aada58645e84fba34f1a1c54696061b767e3e262ccf6562db0498e733 e7237690488f15e40a6462df9cdcfeda83a6f7a74517662935c0a149dd36e057 92bb44f63186c3d80ab8557f84cb1ce907aedab714bb0109827dbfed5641daa8 f2849f199fd78b1636aaedf0bd890c12e7c6d8c6ad5849fff2670920e5e37c7d d27bdc6286dd3314a1116115cab3a33233b9f4fba45ae4c88a6756d5c04a9aa9 #コンテナのハッシュ値を確認します。ハッシュ値で始まるフォルダがコンテナの設定ディレクトリです。docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 096ed809576e nginx "nginx -g 'daemon of..." 3 か月前 33 分前 0.0.0.0:8081->80/tcp apg_nginx #096 cd 096ed809576e* で始まるディレクトリを入力します drwx------ 4 ルート ルート 4096 6月 22 21:41 ./ drwx------ 9 root root 4096 3月8日 18:07 ../ -rw-r----- 1 ルート ルート 2559664 6月22日 21:47 096ed809576e948ada99be65faa181b7f926dd0e655c4c373169305a1954c115-json.log drwx------ 2 ルート ルート 4096 3月8日 18:07 チェックポイント/ -rw------ 1 ルート ルート 3408 6月 22 21:41 config.v2.json -rw-r--r-- 1 ルート ルート 1519 6月 22 21:41 hostconfig.json -rw-r--r-- 1 root root 13 6月22日 21:41 ホスト名 -rw-r--r-- 1 ルート ルート 174 6月 22 21:41 ホスト drwx------ 3 ルート ルート 4096 3月8日 18:07 マウント/ -rw-r--r-- 1 ルート ルート 259 6月 22 21:41 resolv.conf -rw-r--r-- 1 ルート ルート 71 6月 22 21:41 resolv.conf.hash #hostconfig.json は、実行が開始されたときに構成情報を保存するファイルです vim hostconfig.json #HostPort 値はホストマシンのポート番号にマッピングされます。自分で変更できます。変更が完了したら、Docker サービスを再起動する必要があります。再起動しないと有効になりません。 systemctl docker restart 上記の 2 つの状況で構成を変更することで、docker run によって起動されたコンテナの問題をここで修正し、正常に起動することができます。一般的に、コンテナを起動するには docker-compose を使用するのが最適です。 追加知識: Docker でコンテナの起動ログを表示する方法
コマンド形式: $ docker logs [オプション] コンテナ オプション: --details 詳細情報を表示 -f, --follow リアルタイムログを追跡 --since string 特定のタイムスタンプまたは相対時間(40m(つまり40分)など)以降のログを表示します --tail string ログの末尾から何行表示するかを指定します。デフォルトはすべてです。 -t, --timestamps タイムスタンプを表示する --until string 特定のタイムスタンプ、または 40m (つまり 40 分) などの相対時間より前のログを表示する 過去 30 分間のログを表示します。
一定時間後にログを表示します。
一定期間のログを表示します。
起動していないコンテナの設定情報のDocker修正は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: HTML テーブルタグチュートリアル (35): 列間属性 COLSPAN
目次1. ジョブ実行のフォールトトレランス1.1 タスクフェイルオーバー戦略1.2 ジョブ再開戦略2...
CSS オーバーフローのメカニズムを詳細に学ぶ必要があるのはなぜですか?実際の開発プロセスでは、コン...
以下のように表示されます。主に認証コマンドを実行します: 2つの方法1. 任意のホストがユーザー b...
目次1. なぜ vue3 が必要なのでしょうか? 2. vue3の利点3. 応答原則の違い4. ライ...
vue コンポーネントのスタイル タグ内には、背景画像を使用する次の CSS コードがあります。 背...
目次基本的なHTTPリクエストの設定async/await を使用した Axios Axios によ...
この記事では、モバイル署名機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...
プロジェクトでよくある状況として、案件リストなどのリストが存在することがあります。リスト内の項目をク...
この記事では、CSS フロートの特徴を紹介します。皆さんと共有し、自分用のメモとして残したいと思いま...
目次インストールパッケージのダウンロードインストール環境変数の設定インストールが成功したか確認する記...
目次概要1. メニューとルーティング処理2. メニューとルートリスト3. ログインプロセスの処理概要...
序文最良の方法は、あなたが思いつく最も速い方法ではないかもしれません。職場で一時的に使用するスクリプ...
mybatis を学習しているときにエラーが発生しました。エラーの内容は次のとおりです。データベース...
序文同社の開発者は、データの更新時に replace into ステートメントを使用していました。不...
コードと同様に、テーブルや列にコメントを追加して、他のユーザーがその機能を理解できるようにすることが...