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でリバースプロキシしています)

