私はDockerエンジンをDebian Jessieにインストールしており、nginxを含むコンテナーを実行しています。 「実行」コマンドは次のようになります。
docker run -p 1234:80 -d -v /var/www/:/usr/share/nginx/html nginx:1.9
正常に動作します。問題は、このコンテナのコンテンツにhttp://{server_ip}:1234
経由でアクセスできるようになったことです。このサーバーで複数のコンテナー(ドメイン)を実行したいので、それらのリバースプロキシをセットアップします。
コンテナーにリバースプロキシ経由でのみアクセスでき、IP:port
から直接アクセスできないようにするにはどうすればよいですか?例えば。:
http://{server_ip}:1234 # not found, connection refused, etc...
http://localhost:1234 # works fine
// EDIT:明確にするために-リバースプロキシをセットアップする方法ではなく、ローカルホストからのみアクセスできるようにDockerコンテナーを実行する方法を尋ねています。
ポートマッピング で必要なホストIPを指定します
docker run -p 127.0.0.1:1234:80 -d -v /var/www/:/usr/share/nginx/html nginx:1.9
リバースプロキシを実行している場合、それらすべてをリバースプロキシと共にユーザー定義ネットワークに配置すると、すべてがコンテナ内にあり、内部ネットワークからアクセスできます。
docker network create net
docker run -d --net=web -v /var/www/:/usr/share/nginx/html nginx:1.9
docker run -d -p 80:80 --net=web haproxy
まあ、解決策は非常に単純です。127.0.0.1
ポートをマッピングする場合:
docker run -p 127.0.0.1:1234:80 -d -v /var/www/:/usr/share/nginx/html nginx:1.9