Dockerコンテナがホストポートにアクセスできない場合の解決策

Dockerコンテナがホストポートにアクセスできない場合の解決策

最近、仕事中に問題が発生しました。Docker コンテナがホストの redis にアクセスできず、telent6379 ポートがブロックされていました。

調査の結果、サーバーでファイアウォールが有効になっており、ファイアウォールが docker0 ネットワーク カードのポート 6379 へのアクセスを許可していることが判明しました。

操作は以下のとおりです。

ファイアウォールコマンド --permanent --zone=trusted --change-interface=docker0

ファイアウォール-cmd --reload

追加情報: Docker が mysql コンテナを起動すると、エラーが発生します: ポートが利用できません: listen tcp 0.0.0.0:3306

エラーのスクリーンショットは次のとおりです

このエラーは、ローカル ポート 3306 が占有されていることが原因で発生します。MySQL がローカルにインストールされ、MySQL サービスが開始されている可能性があります。

解決策1:サービスを開き、mysqlサービスを見つけて停止するか、ポートを変更します

次に次のコマンドを実行します

docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -itd mysql:latest /bin/bash

図に示すように、起動は成功しています

解決策2:ポートマッピングを変更する

docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -itd mysql:latest /bin/bash

例:

-p 3309:3306: -p ホスト ポート: コンテナ ポート。つまり、ホスト ポート 3309 をコンテナ ポート 3306 にマップします。ホストがコンテナ データベースにログインするときは、3309 などのホスト ポートを使用します。

docker コンテナがホストポートにアクセスできない問題に対する上記の解決策は、エディターが皆さんと共有する内容のすべてです。 皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerはコンテナとホスト間でのシェルコマンドのシームレスな呼び出しを可能にします
  • Dockerコンテナにホストディレクトリへの書き込み権限がない場合の解決策
  • ホスト上のDockerコンテナ内でシェルまたはプログラムを実行する
  • Dockerコンテナ内でホストDocker操作を呼び出して実行する
  • dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明
  • Dockerコンテナを使用してホストネットワークにアクセスする方法
  • Dockerコンテナとホストマシン間の8時間の差の問題を解決する

<<:  MYSQL データベース GTID はマスタースレーブレプリケーションを実現します (超便利)

>>:  HTML テーブル セルの幅と高さを設定する方法

推薦する

Linux のユーザーとグループ管理によく使われるコマンドの概要

この記事では、Linux のユーザーとグループの管理によく使用されるコマンドをまとめます。ご参考まで...

Vue で echarts を使用してコンポーネントを視覚化する方法

echarts コンポーネントの公式ウェブサイト アドレス: https://echarts.apa...

DockerにMySQL 8.0をインストールする方法

環境: MacOS_Cetalina_10.15.1、Mysql8.0.18、Docker_2.0....

Vue.jsでタブ切り替えと色変更操作を実装する解説

この機能を実装するにあたり、本家ブロガーさんから拝借した方法では色の切り替えが実現できず、長い間考え...

Docker に Elasticsearch 7.6.2 をインストールするチュートリアル

DockerをインストールするDocker をインストールする必要がありますが、それ以上の指示はあり...

AngularパイプラインPIPEの紹介と使い方

序文PIPE、パイプラインと翻訳されます。 Angular パイプは、HTML コンポーネントで宣言...

Vue プラグイン エラー: このページで Vue.js が検出されました。問題は解決しました

Vue プラグインがエラーを報告しました: このページで Vue.js が検出されましたVueプラグ...

aタグのhref属性とonclickイベントの比較

まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...

MySQL プロジェクトでトランザクション分離レベルを選択する方法

導入コンテンツから始めましょう。誰もが次のような面接のシナリオに遭遇したことがあると思います。インタ...

CSSがページのレンダリングをブロックするかどうかについての簡単な説明

おそらく誰もが js の実行によって DOM ツリーの解析とレンダリングがブロックされることを知って...

JavaScript でウェブ プレーヤーを実装する

今日は、JavaScript を使用して Web ページ上にプレーヤーを作成する方法を紹介します。誰...

CSS疑似クラス名を数字で始めないでください

初心者が div+css を開発する場合、.ggg、#ccc などの形式の CSS 疑似クラス名を付...

JSONP クロスドメインシミュレーション Baidu 検索

目次1. JSONPとは何か2. JSONPクロスドメインリクエスト3. Baidu検索をシミュレー...

HTMLヘッダータグの使用に関する詳細な説明

HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...

DD DT DLタグの使用例

通常は <ul><li> タグを使用しますが、dd タグと dt タグも便利...