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 の例におけるループの使用法の詳細な説明

推薦する

純粋なテキストとアイコン付きのボタンを実現するための HTML+CSS

この記事では、いくつかの基本的なページ要素の実装方法をまとめており、後で更新される予定です。まず、私...

パフォーマンス負荷診断にMySQLシステムデータベースを使用する方法

ある達人がかつて、自分の妻のことを知るのと同じくらい、自分が管理するデータベースのことを知るべきだと...

JavaScript イベント ループのケース スタディ

js のイベント ループJavaScript はシングルスレッドなので、同じイベントで実行できるメソ...

CSS3 のフレックスレイアウト幅の無効性の解決策

2 列レイアウトはプロジェクトでよく使用されます。この効果を実現する方法はたくさんあります。 しかし...

Python で pymysql モジュールを使用して MySQL データベースに接続する

pymysqlをインストールするpip install pymysql 2|0pymysqlの使用2...

Javascriptジェネレータの紹介と使用

ジェネレータとは何ですか?ジェネレーターは関数内で実行されるコードです。値を返した後、一時停止し、呼...

CN2、GIA、CIA、BGP、IPLC はどういう意味ですか?

CN2ラインとは何ですか? CN2 は、China Telecom Next Carrier Ne...

HTML+CSS+JavaScript でシンプルな三目並べゲームを作成する

目次HTMLの実装CSSを追加Javascript部分の実装デモアドレス HTMLの実装まず、hea...

Alibaba Cloud Centos7.3 インストール mysql5.7.18 rpm インストール チュートリアル

MariaDBをアンインストールするCentOS7 ではデフォルトで MySQL の代わりに Mar...

10分でCSS3グリッドレイアウトを理解する

基本的な紹介前回の記事では、CSS3 のフレックスボックスを紹介しました。今日は、CSS3 のもう ...

MySQL テーブル削除操作の実装 (delete、truncate、drop の違い)

この記事では主に、MySQL でテーブルを削除する 3 つの操作、つまり delete ステートメン...

mysql は sql ファイルを実行し、エラーを報告します エラー: 不明なストレージ エンジン 'InnoDB' ソリューション

問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...

Docker で hyperf を開発する完全な使用例の詳細な説明

ハイパーフ公式サイトHyperf 公式ドキュメントのインストール1. Dockerの使用docker...

MySQL の条件文で 1 つの情報しか読み取れない問題に対する 2 つの解決策

今日、私の同僚が MYSQL クエリ ステートメントの作成時に非常に奇妙な問題に遭遇しました。MyS...

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...