質問: DockerでWebサーバを立ち上げる時に、ポートの指定を 「-p 8888:80」のように書く例がほとんどなのですが、 この書き方では、アクセス時はhttp://localhost:8080/となります。 ローカルでテストしているときはこれで良いのですが、 Webサーバを公開するとなった時に、ポート番号は指定しないで既定値に したいと考えました。 下記の書き方もする例も見つけました。 ``` $ sudo docker run -it -p 80:80 --link mysql:db --name wordpress centos:wordpress /bin/bash ``` Webサーバを立ち上げるのですから、locachostで参照するだけでは ないと思います。 「-p 8080:80」と指定する場合と、「-p 80:80」としてする場合の 違いや、不都合(メリット・デメリット)について教えてください。 当該のサーバで、既にWebサーバ(apache)が起動している場合、 Dockerで起動したapacheには繋がりませんね。 ホスト名でアクセスしたときは、通常のドキュメントルートに、 ipアドレス(ポート番号は省略)でアクセスしたときは、Dockerで起動した Webサーバにアクセスするということはできるのでしょうか。
回答: まず、`http://teratail.com/`のようにアクセスした場合、「80番ポート」をアクセスするように決まっています。 > > 当該のサーバで、既にWebサーバ(apache)が起動している場合、 > > Dockerで起動したapacheには繋がりませんね。 > > > はい、1つのポートに待ち受けできるプロセスは1つだけなので、先にApacheが待ち受けていれば別のプロセスが同じ80番ポートに待ち受けることはできません。 > > ホスト名でアクセスしたときは、通常のドキュメントルートに、 > > ipアドレス(ポート番号は省略)でアクセスしたときは、Dockerで起動した > > Webサーバにアクセスするということはできるのでしょうか。 > > > 80番にはリバースプロキシを立てて、アクセス方法によって振り分ける、という方法が考えられます。