私が初めて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
jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...
背景情報最近、Windows パフォーマンスに関する本を読み直しています。以前は SCOM 監視を使...
この記事はMySQL 8.0.12のインストールと設定に関する詳細なチュートリアルを記録しています。...
序文:テーブルをクリアしたいときは、truncate ステートメントをよく使用します。ほとんどの場合...
目次サーバーはjupyterノートブックを実行します仮想環境次にファイアウォールをオフにしますJup...
ファイルをディレクトリに解凍しますこれは解凍後のディレクトリですmy.iniファイルを入力しますダブ...
まず、Moments を開いて、写真の数が異なるいくつかのレイアウトを確認するか、以下の例を参照して...
この記事では、スライダー検証コードを実装するためのJavaScriptの具体的なコードを参考までに共...
目次1. 証明書を生成する2. リモートを有効にする3. リモート接続3.1 Jenkins接続3....
DockerでRedisをデプロイするまずLinuxにDockerをインストールし、次にDocker...
この記事は主に、nginx 高可用性クラスタの実装プロセスを紹介します。この記事のサンプルコードは非...
最近、テスト サーバーのオペレーティング システムを Cent0S 7.5 にアップグレードし、Py...
border-radius で生成できる四角形やその他の図形に影を追加する場合 (「Adaptive...
イベント応答の更新: 要求されたときのみ更新1. JS HTML DOM または jQuery を介...
インターフェースの役割:インターフェース (英語: interface) の機能は、簡単に言えば、コ...