徒然なるままに プログラミングメモや日々の生活などつれづれとつづっていくblog

2019年3月1日

Dockerコンテナでポート変更せずに共存させる方法

Filed under: Docker — ranpei @ 8:45 PM

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

Powered by WordPress