Dockerコンテナに外部からアクセスする方法

DockerをインストールするとDocker0というブリッジが作られて図のようなネットワーク構成になります。

ホストからは特に何もしなくてもSSHやSCPでDockerのコンテナにアクセスできるのですが、外部のPC(図のWindows端末)からアクセスできないと不便なのでいろいろやり方を調べました。

やり方はいろいろヒットするのですがどれもめんどくさかったので、試行錯誤するとWIndows端末にルーティング設定を一つ追加するだけでアクセスできました。

docker-network

Windows端末で以下のコマンドを実行するだけ。


route -p add 172.17.0.0 mask 255.255.0.0 [DockerホストのIPアドレス(図のeth0)]

172.17.0.0の部分はDocker0のサブネットを指定、デフォルトだと172.17ですが必要に応じて変更。

要は172.17.x.xへのアクセスをDockerを入れているホストのIPアドレスに飛ばせばいいだけ。これでホストと同じローカルネットワークにいる端末からはアクセスできました。