Dockerはコンテナポートバインディングのローカルポートを実装します

Dockerはコンテナポートバインディングのローカルポートを実装します

今日、イメージを起動した後、HTTP リクエスト経由でアクセスできないという小さな問題が発生しました。解決策を記録して共有しましょう。

一般的な Docker 起動コマンドとソリューションは次のとおりです。

1. Dockerを起動する

ご存知のとおり、コンテナを起動するコマンドは次のとおりです。

docker run イメージ名

2. コンテナポートをローカルポートにバインドする

コンテナを起動した後は、ローカルポートに直接アクセスすることができないため、ローカルポートを介してコンテナにアクセスできるように、ローカルポートをコンテナポートにバインドする必要があります。設定は以下のとおりです。

docker run -p ローカルポート: コンテナポートイメージ名

その後、ローカル ブラウザーを介してローカル ポート経由でコンテナーにアクセスできるようになります。

3. コンテナはバックグラウンドで実行されます。-d パラメータを追加します。コマンドは次のようになります。

docker run -d -p ローカルポート: コンテナポートイメージ名

4. ミラーリストを表示するには、コマンドは次のようになります。

dockerイメージls
またはDockerイメージ

5. 実行中のコンテナを表示するには、コマンドは次のようになります。

ドッカーps

補足: Dockerは実行中のコンテナにローカルポートをマッピングします

1. 実行中のコンテナをイメージとして送信する(コンテナ内の各種操作が失われないようにするため)

docker コミット tang tang1
### tang (実行中のコンテナの名前) tang1 (生成されたイメージの名前)

2. イメージを実行してポートを追加する

docker run -d -it -p 8000:80 tang1:latest /bin/bash
### 小さな p はカスタムポートで、latest はイメージのラベルです (プロフェッショナルなものを書いた方が良いでしょう)

補足: Dockerはボリュームをロードし、ポートをバインドします

必要とする

Docker イメージを取得しました。次に、コンテナを作成し、ローカル ディレクトリをコンテナ ディレクトリにロードし、ローカルとコンテナ間のポートをマップします。

具体的な例は以下のとおりです。

画像ID: 884e0fc83dfe

コンテナ名を設定: test

ローカルポート9000をコンテナのポート80にマッピングする

データボリュームをロードします。ローカルの ~/Desktop/test をコンテナの /test ディレクトリにマップします。

成し遂げる

docker run -it --name test -v ~/Desktop/test:/test -p 9000:80 884e0fc83dfe /bin/bash
# 新しいコンテナに入る
docker スタートテスト
docker アタッチテスト

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • 非ルートユーザーを使用してDockerコンテナでスクリプト操作を実行する
  • Dockerコンテナにホストディレクトリへの書き込み権限がない場合の解決策
  • Dockerコンテナの中国語言語パックの設定の問題を解決する
  • DockerコンテナがSongtiなどのフォントを認識しない場合の解決策
  • Docker の win ping 失敗コンテナ回避ガイド
  • DockerコンテナでJupyterノートブックを設定する方法
  • docker run後にコンテナがExited (0)と表示される問題を解決する
  • Dockerはコンテナに入るためにルートを使用する

<<:  CSS メニューボタンアニメーション

>>:  JavaScript の例におけるループの使用法の詳細な説明

推薦する

Linuxフラッシュのインストール方法

Linuxにフラッシュをインストールする方法1. Flashの公式サイトにアクセスし、ダウンロードを...

VMware 仮想マシンで Linux の IP アドレスを表示する方法

1. まず、コンピュータのデスクトップにある VMware アイコンをダブルクリックしてソフトウェア...

MySQLデータの同時更新を処理する方法

UPDATE はロックしますか?以下のような場合、SQL文はロックされますか? テーブル1を更新しま...

HTML の表のフレームとルール属性の詳細な説明

テーブル タグの frame 属性と rules 属性は境界線の表示を制御できます。フレーム プロパ...

mysql5.5.28 のインストール チュートリアルは非常に詳細です。

参考までにmysql5.5.28のインストールチュートリアルです。具体的な内容は次のとおりです。イン...

1 つの記事で v-model とその修飾子を学ぶ

目次序文v-model の修飾子:怠け者トリム番号さまざまな入力タイプやその他の要素での v-mod...

Ubuntu 16.04 にソースコードから Mininet をインストールする

ミニネットMininet は軽量のソフトウェア定義ネットワークおよびテスト プラットフォームです。軽...

JSで実現したページサイドバーの効果に関する研究

目次発見: ディスプレイアニメーションの応用実装:記事の1行目を表示する効果を実現する方法実際、その...

Mysql と Oracle でよく使用される複数テーブルの変更ステートメントの概要

今日、SQLトレーニングの質問バンクでこの質問を見ました。これは、非常に代表的なマルチテーブル変更の...

テンプレートタグの使用方法の詳細な説明(Vue での使用方法の概要を含む)

目次1. HTML5のテンプレートタグ2. テンプレートタグ操作のプロパティとメソッド3. Vueの...

MySQL の自己結合重複排除に関する注意事項

機能シナリオを簡単に説明しましょう。データ行フィールドは次のとおりです。名前開始日時タイプこの表では...

vite を使用して vue3 アプリケーションを構築する方法

1. インストールヒント: 現在、VUE3.0 の公式翻訳ドキュメントはありません。しかし、すでに誰...

HTML Selectは、デフォルトの選択を設定するためにselected属性を使用します。

オプションに属性 selected = "selected" を追加すると、それ...

Tomcat の設定と Eclipse での起動方法

目次Tomcat8のインストールと設定方法tomcat ダウンロードTomcat マネージャーを有効...

Centos 7 sshd の変更 | ルートログインの禁止と sshd ポートスクリプトの定義

1. 新しいユーザーwwweee000を作成します [root@localhost ~]# user...