Dockerでサービスを起動させる場合
# docker run -p 80:80 wordpress
や
wordpress: image: wordpress ports: - "80:80"
って感じでポートを開けますね。
でもこのポートがかぶっていた場合はどうしますか?
“81:80”, “82:80”, “83:80” って開放するポートをずらして起動します?
それでも良いですがDockerのネットワーク機能を使うことで
ポートを変更せずに同居させる方法があるのでご紹介します。
■方法
やり方は簡単です。以下のように起動コンテナに固定のIPアドレス割り当てるだけです。
version: '3' services: concrete5: image: concrete5 restart: always networks: vpcbr: ipv4_address: 172.168.0.2 wordpress: image: wordpress restart: always networks: vpcbr: ipv4_address: 172.168.0.3 networks: vpcbr: driver: bridge ipam: config: - subnet: 172.168.0.0/16 gateway: 172.168.0.1
後はリバースプロキシ設定に固定化したIPアドレスを設定するすれば
ポート変更の必要なくサービスを同居させることができます。
■補足
当然ですが同じDockerネットワーク上にいることが条件です。
複数ホストで運用している場合は相互に通信できるようにDockerネットワークを構築してください。
(当サーバーではホスト上にインストールしたNginxでリバースプロキシしています)