イメージを再構築せずにDockerにポートを動的に追加する方法

イメージを再構築せずにDockerにポートを動的に追加する方法

操作中に Docker コンテナの公開ポートを変更または追加する必要がある場合がありますが、実行中のコンテナ用に新しいイメージを作成したくない場合もあります。この時点で、Docker コンテナの保存場所を見つけて、設定ファイルを直接変更できます。

コンテナはすべて/var/lib/docker/containers下に保存されます。

私のコンテナは/var/lib/docker/containers/797f3d0cb82aec7d1c355c7461b5bc5a050c1c0cbbe5d813ede0edad061e6632にあります

各コンテナ ID は hash_id に対応します。nginx コンテナが 2 つのポートを公開していることがわかります。次に、別のポート 9999 を追加しましょう。

コンテナに対応するディレクトリを入力します。

cd /var/lib/docker/containers/797f3d0cb82aec7d1c355c7461b5bc5a050c1c0cbbe5d813ede0edad061e6632

次のように表示されます。

hostconfig.jsonをコピーし、json変換ツールを使用して「PortBindings」ノードを見つけます。

次に、同じパターンに従って上に 1 つ追加します。

図に示すように:

hostconfig.jsonを変更して保存します。

次に、図に示すように、 config.v2.json的ExposedPorts変更します。

保存して終了します。

Dockerを再起動します。

コンテナを再起動します。

ご覧のとおり、ポート 9999 が公開されています。

要約する

上記は、イメージを再構築せずに Docker にポートを動的に追加するために紹介した方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Docker で実行中のコンテナのポート マッピングを設定する方法
  • Docker ポート マッピングを使用してネットワーク アクセスを実現する方法
  • Docker 学習ノート Docker ポートマッピング
  • 実行中のコンテナポートを動的にマッピングするDockerの詳細な説明
  • Docker ポートマッピングの詳細
  • Docker はイメージを取得し、エラーを報告します: docker: デーモンからのエラー応答

<<:  MySQL Community Server 8.0.11 のインストールと設定方法のグラフィックチュートリアル

>>:  JavaScriptのプリミティブ値とラッパーオブジェクトの詳細な紹介

ブログ    

推薦する

Docker-compose インストール yml ファイルの設定方法

目次1. オフラインインストール2. オンラインインストール3. アンインストール4. ymlファイ...

MySQL の CPU 負荷が高い問題のトラブルシューティング

MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...

Linux 上の MYSQL 5.7 でルート パスワードを取得する際の問題 (テスト済み、利用可能)

目次1. --skip-grant-tables 経由で取得する1.1 my.conf を変更し、新...

MySQLインデックスが失敗するいくつかの状況の分析

1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...

Windows での MySQL の使用: 自動スケジュールバックアップの実装

1. バックアップスクリプトを書く 著者:www.yumi-info.com 日付:20171222...

解析を実装するためにPostgreSQLデータベースを書き込むSQLスクリプト関数

この記事は主に、PostgreSQL データベースを記述して解析を実装する SQL スクリプト関数を...

Docker 階層化パッケージを使用して Spring Boot を設定する方法

Spring Boot プロジェクトでは、Docker コンテナ、jar、war の階層化パッケージ...

クロスドメインの問題を解決するためのNginxの実用的な方法

フロントエンドとバックエンドを分離し、nginxを使用してクロスドメインの問題を解決するフロントエン...

ウェブサイトのビジュアルデザインの重要なポイント

手工芸デザインからグラフィックデザイン、そしてウェブデザインまで、デザインの原則は同じままですが、私...

CSS3 を使用して左上または右上隅にリマインダー ドットを表示するサンプル コード

効果画像(三角形をご希望の場合は、ここをクリックしてください): コード: <html>...

Vue 親コンポーネントが子コンポーネント関数の実装を呼び出す

Vue親コンポーネントは子コンポーネントの関数を呼び出す親コンポーネントはイベントを通じて子コンポー...

MySql データベースにおける単一テーブル クエリと複数テーブル結合クエリの効率の比較

この間、プロジェクトに取り組んでいるときに、データ間の接続が非常に複雑なモジュールに遭遇しました。テ...

dockerコマンドの使用にはsudoは必要ありません

docker デーモンは通常の TCP ポートではなくホストの Unix ソケットにバインドする必要...

JavaScript フロー制御 (分岐)

目次1. プロセス制御2. シーケンシャルプロセス制御3. 分岐フロー制御if文1. 支店構造2. ...

Linux ディスクデバイスと LVM 管理コマンドの詳細な例

序文Linux オペレーティング システムでは、デバイス ファイルは特別なタイプのファイルです。これ...