Dockerコンテナ内でもlocalhostを使いたい!

みなさんこんにちは!
イザナギです。
関東といえど、冬は寒いですね...
先日ラーメン屋で並んでた時、薄着で行ったせいで待ち時間の間寒くてずっと震えてましたw
冬舐めたらいけませんね。
 
さて、話題変わりまして今回はDockerについてです。

Dockerコンテナ内から「localhost」にアクセスするには

最近Docker+Jupyter Notebookを使ってとある検証をしていたのですが、
別コンテナで起動しているプログラム「localhost:8080」にアクセスしなければなりませんでした。
※docker-composeは使っていません。
検証環境は以下の通りです。

  • OS: Mac(M1)
  • Docker: 20.10.11
  • Python:3.9.6
  • ツール:Jupyter Notebook

普通に「localhost:8080」でいけるっしょ!って思ってましたが、全然アクセスできず...
Jupyter Notebookの設定かなと思いつつ、コンテナ内にbashで入ってcurlコマンドを実行してみても変わらず...
httpとか書く必要があるのか?とかしばらくインターネットで調べまくってました。
調べまくった結果「lcoalhost」ではなく、以下記載でいけるようです。


host.docker.internal:8080

まじか!これだけかよ!
と思いつつ実行してみた結果、あっさりと繋がった...
一文を調べるために、結構時間使っちゃったなw
まあ、解決したしいいか!

今回は短いですが、ここで筆を置かせていただきます。
最後まで記事をご覧いただきありがとうございました。

参考:

Networking features in Docker Desktop for Mac
Dockerコンテナ内からホストへ`localhost` でアクセスしてみる

関連記事(AI判定作成中)