[解決済み] dockerコンテナからホストデータベースにアクセスする
2022-04-21 08:20:09
質問内容
あるホストマシンで mysql データベースを実行していて、そのホストで docker コンテナも実行されている場合。ホスト上で動作しているドッカーコンテナから、どのようにして mysql データベースにアクセスするのでしょうか。
例えば、コンテナにホストポートを公開する方法(docker run -pが行うことの逆)はあるでしょうか?
どのように解決するのですか?
これを一貫性のある、よく理解された、ポータブルな方法で行う方法については、いくつかの長年の議論があります。完全な解決策はありませんが、以下の議論にリンクしておきます。
いずれにせよ、docker run の --add-host オプションを使用して、コンテナの /etc/host ファイルにホストの IP アドレスを追加してみるとよいでしょう。そこから、必要なポートでホストに接続するのは簡単です。
<ブロッククオートコンテナのhostsファイルへのエントリの追加
コンテナの /etc/hosts ファイルに他のホストを追加するには、次のようにします。 1つ以上の --add-host フラグを指定します。この例では、静的アドレスとして docker という名前のホストです。
$ docker run --add-host=docker:10.180.0.1 --rm -it debian
$$ ping docker
PING docker (10.180.0.1): 48 data bytes
56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms
56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms
^C--- docker ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms
注意:Dockerホストに接続する必要がある場合もあり、その場合は ホストのIPアドレスを取得する。以下のシェルを使用することができます。 コマンドを使用すると、このプロセスを簡略化できます。
$ alias hostip="ip route show 0.0.0.0/0 | grep -Eo 'via \S+' | awk '{ print $2 }'"
$ docker run --add-host=docker:$(hostip) --rm -it debian
ドキュメンテーション
https://docs.docker.com/engine/reference/commandline/run/
コンテナからホストへのアクセスに関する議論。
関連
-
minttyを使用している場合は、コマンドの前に'winpty'を付けてみてください。
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerコンテナに環境変数を渡すにはどうしたらいいですか?
-
[解決済み] Dockerでデータベースなどの永続的なストレージを扱う方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Dockerコンテナからホストポートにアクセスする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー "入力デバイスはTTYではありません"
-
[解決済み】docker-compose.ymlでdocker execを実行する方法
-
[解決済み] ansibleでdocker-composeのコマンドを実行するには?
-
[解決済み] 接続するには、Dockerクライアントを昇格して実行する必要があります。
-
[解決済み] Dockerfileの "RUN chmod "が有効でない。
-
Docker npm getaddrinfo EAI_AGAIN registry.npmjs.org registry.npmjs.org:443
-
ドッカーサーバーがHTTPSクライアントに対してHTTPレスポンスを返す問題処理
-
docker-composeの使い方ガイド
-
docker-composeコンテナのマウント権限の問題
-
[解決済み] Dockerコンテナ内部からDockerホストのIPアドレスを取得する方法