Dockerでサービスを起動させる場合
1 | # docker run -p 80:80 wordpress |
や
1 2 3 4 | wordpress: image: wordpress ports: - "80:80" |
って感じでポートを開けますね。
でもこのポートがかぶっていた場合はどうしますか?
“81:80”, “82:80”, “83:80” って開放するポートをずらして起動します?
それでも良いですがDockerのネットワーク機能を使うことで
ポートを変更せずに同居させる方法があるのでご紹介します。
■方法
やり方は簡単です。以下のように起動コンテナに固定のIPアドレス割り当てるだけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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でリバースプロキシしています)