私が初めて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
概要プロジェクトは正常に作成され、正常にデプロイされましたが、以下に示すように、Tomcat サーバ...
目次1. 通常の機能2. 矢印関数3. データパケットJSON 4. オブジェクト5. 約束6. 非...
クイックスタートガイドForeman インストーラーは、完全に機能する Foreman セットアップ...
序文サーバーシステム環境は、CentOS 6.5 (最終) です。 FFmpeg をサーバーに正常に...
この記事では、MySQL の sql_mode モードについて例を挙げて説明します。ご参考までに、詳...
テーブルはかつて、Web ページの開発、つまりレイアウトにおいて非常に重要な役割を果たしていました。...
序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...
アバターをアップロードするにはVue-Cropperコンポーネントを使用します。参考までに具体的な内...
前面に書かれたWeibo コンポーネントは、サードパーティのアクセス ユーザーが開発を必要とせずに ...
Linux コマンドラインには、プロセスを強制終了するためのコマンドが多数用意されています。たとえば...
目次要件:実装手順:この記事では主に以下について説明します: カスタムツリーコントロール<el...
シングルページアプリケーションの特徴「前提:」Web ページには、クリックするとサイト内の他のページ...
HTML で下線を引くには、以前はテキストを <u></u> タグで囲む必要...
Linux に zip 解凍機能をインストールする通常、 zip コマンドは Linux サーバーに...
今日、VMware を使用してマシンに新しい仮想マシンをインストールしていたところ、次のように「この...