私はAWS Elastic Beanstalk内でCentOSの派生物と考えられるAmazonの「Amazon Linux」を実行するDockerコンテナを実行しています。
私の開発環境では、私のローカルコンピュータからリモートでデバッグできるように、私のアプリケーションでデバッグを有効にしたいと思います。もちろん、これには追加のポートが必要ですが、AWSはデフォルトでDockerコンテナからホストに1つのポートのみをマップします。
私はコンピュータにあり、Dockerコンテナにローカルアドレス(172.xxx)があることがわかり、ホストにいるときにそのアドレスのデバッグポートにアクセスできます。問題はもちろん、このアドレスが私のローカルコンピュータからアクセスできないことです。
リモートデバッグ用に接続できるように<my-aws-host-ip>:<port>
呼び出しを転送するポート転送ルールを手動で作成したいと思います。<docker-local-ip>:<port>
私はiptablesが正しいツールだと思いますが、その使い方に慣れていません。この目標をどのように達成できますか?
ベストアンサー1
設定なしでDockerfileを作成します。たとえば、次のようになります。
//Dockerfile
FROM somePkg:1.2.3
EXPOSE 1337 8080 8081
PrivateIPではアクセスできず、PublicIPでのみアクセスできることに注意してください。これについてもう少し興味を持っている必要があります。 AWS の ElasticBeanstalk は、iptables
お客様にとって有利なルールをいくつか構築しました。このファイルを使用しない場合は、v2
dockerコンテナにポートをマッピングさせる必要がありますDockerrun.aws.json
。
また、AWSのElasticBeanstalkは、リストの最初のポートをポート80に自動的に転送することに注意してください。
したがって、この場合external_interface:80 -> docker_container:1337