質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

2743閲覧

仮想マシン上のDockerコンテナのzabbixに、ブラウザからアクセスできない

satrex

総合スコア10

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/03/11 09:41

前提・実現したいこと

環境

ホスト:mac OS X 10.14.6

仮想マシン: ホストマシンのVirtual Boxで実行中

  • OS: ubuntu 18.04.3 LTS (CLI)
  • ネットワーク: ブリッジ(独立したIPアドレスを付与)

Dockerコンテナ: 仮想マシン上で実行中

  • OS: ubuntu
  • イメージ: zabbix/zabbix-appliance:ubuntu-4.0.18
  • ポートフォワーディング: 80->80

やりたいこと

ホストから、google chromeを使って、zabbixのログイン画面にアクセスしたいです。

発生している問題・エラーメッセージ

ホストのGoogle Chromeから
http://(仮想マシンのアドレス)
へアクセスすると、

このサイトにアクセスできません172.17.200.101 で接続が拒否されました。 次をお試しください 接続を確認する プロキシとファイアウォールを確認する ERR_CONNECTION_REFUSED

と表示されます。

試したこと

ホストマシン上で試したこと

ping (仮想マシンのIPアドレス) -> 64 bytes from (仮想マシンのIPアドレス): icmp_seq=0 ttl=64 time=0.436 ms ※ 仮想マシンはネットワーク上に見えている
nmap -sT -p80 (仮想マシンのIPアドレス) -> PORT STATE SERVICE 80/tcp open http ※ 仮想マシンの80番ポートは開いている
curl (仮想マシンのIPアドレス)/healthcheck -> htmlの文字列 この時、Dockerで実行中のZabbixの画面表示は -> (ホストマシンのIPアドレス) - - [11/Mar/2020:08:55:22 +0000] "GET /healthcheck HTTP/1.1" 200 3424 "-" "curl/7.54.0" "-" ※ curlでhttpの疎通はできている
docker container run --name=zabbix -p 80:80 -p 10051:10051 -e PHP_TZ=Asia/Tokyo -d \ zabbix/zabbix-appliance:ubuntu-4.0.18 -> メッセージなし その後、Google Chromeからhttp://localhostへアクセス -> zabbixのログイン画面が表示される ※ホストマシン上のDockerコンテナなら、接続に問題ない

仮想マシン上で試したこと

sudo ufw status -> 状態: 非アクティブ ※ ファイアウォールは設定していない
curl 127.0.0.1/healthcheck -> htmlの文字列 この時、Dockerで実行中のZabbixの画面表示は -> 10.0.2.15 - - [11/Mar/2020:07:53:38 +0000] "GET /healthcheck HTTP/1.1" 200 3424 "-" "curl/7.58.0" "-" ※ 自分自身へのcurlは成功する

これを見る限り、次の状態のように思えます。

  • Dockerのポートフォワードはうまく行っている(仮想マシンにホストマシンからもcurlできるので)
  • ホストマシンから仮想マシンへ接続できる(Pingが通り、ポートスキャンも成功するので)
  • Docker上のzabbixは走っている(curlされると画面に表示が出るので)
  • しかし、Google Chromeからのアクセスは、Dockerのzabbixが拒否している?

次に試すべき一手は何でしょうか。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2020/03/11 10:50

実行結果で表示されているIPアドレス(10.0.2.15、172.17.200.101)はそれぞれどれに該当するのでしょうか? curlで/healthcheck ではなく、/ にアクセスするとどうなるのですか?
satrex

2020/03/11 14:29

10.0.2.15は仮想マシンから観た仮想マシン自身(VirtualBox内の仮想ネットワーク) 172.17.200.101は、ホストから観た仮想マシン(物理ネットワーク内の独立アドレス)です。 curlで仮想マシンの/にアクセスした場合、仮想マシン自身からはhtmlの文字列が返りました。 ホストからは/にアクセスは試しませんでした。 その後、パソコンを別のネットワークに接続し、再度ブラウザから接続したところ、ホストから仮想マシンのzabbixのログイン画面が表示できました。 明日、元のネットワーク環境で再度挑戦してみます。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問