GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Dockerコンテナに静的IPを割り当てる方法

静的IPアドレスは、コンテナまたはサービスが停止および開始されても変更されないため、永続的なネットワーキングに役立ちます。 Dockerコンテナに静的IPアドレスを割り当てることは、Dockerコンテナをよりアクセスしやすくするための簡単な方法です。

静的IPを使用する理由

「静的IP」には2種類あります。サーバー内部の内部ネットワークに使用されるプライベートIPアドレス、およびサーバーの外部に接続するために使用されるパブリックIPアドレス(多くの場合、インターネット経由)。

コンテナのパブリックIPアドレスを設定する必要がある場合は、ポートバインディングを使用することをお勧めします。 Dockerコンテナーのポートを「公開」して、ホストからアクセスできるようにすることができます。より高度なネットワーク設定がありますが、これははるかに簡単で最も一般的です。たとえば、ホストのポート80(HTTP)をバインドしてNGINXコンテナを指すようにします。

docker run --publish=80:8080 nginx

静的プライベートIPアドレスを作成する場合は、それを使用する必要があるかどうかを検討する必要があります。ほとんどの場合、静的IPが別のコンテナまたはホストから1つのコンテナと通信する必要があります。ほとんどの場合、Dockerの組み込みネットワークでこれを処理できます。

Dockerにはデフォルトのネットワークが付属していますが、独自のネットワークを作成する場合は、そのネットワークで起動したときにコンテナーにエイリアスを指定できます。このエイリアスは、コンテナのプライベートIPに自動的に解決されます。たとえば、ここのNGINXコンテナは、接続文字列mongodb://mongohost:27017を使用してMongoDBインスタンスにアクセスできます。 。

docker network create example
docker run --net example --name nginx -d nginx
docker network connect example --alias mongohost mongodb

詳細については、ユーザー定義のブリッジネットワークに関するDockerのドキュメントをご覧ください。

ただし、ホストから直接コンテナにアクセスするなど、プライベートIPアドレスを手動で指定したい場合はまだたくさんあります。これを行うには、カスタムDockerネットワークを使用する必要がありますが、セットアップは簡単です。

静的IPの設定

まず、Dockerネットワークを設定する必要があります。また、IPアドレスを考慮しているため、固定サブネットを指定する必要があります。

docker network create --subnet=172.20.0.0/16 customnetwork

関連: サブネットとは何ですか。また、サブネットはネットワークにどのように影響しますか?

次に、--netでネットワークを指定して、コンテナを実行できます。 フラグを立て、-ipでIPを指定します フラグ:

docker run --net customnetwork --ip 172.20.0.10 -d container

exec -t bin/bashを使用してコンテナ内でアドレスをチェックすることにより、アドレスが正しいことを確認できます。 、またはDockerコンテナリストを調べることによって:

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' name_or_id

DockerComposeの使用

Docker Composeは、事前定義された設定で複数のコンテナーを起動するために使用されるツールです。これには、特定のサブネットを持つネットワークの設定が含まれ、ipv4_addressを使用して、固定IPを持つネットワークにコンテナを接続できます。 ここに示されている構成ブロック:

version: '2'
services:
  webserver:
    image: nginx
    container_name: web-server
    networks:
      customnetwork:
        ipv4_address: 172.20.0.10
networks:
  customnetwork:
    ipam:
      config:
        - subnet: 172.20.0.0/16

Docker
  1. DockerコンテナでMySQLを実行する方法

  2. DockerコンテナにSSHで接続する方法

  3. DockerコンテナにVimをインストールする方法

  1. Dockerを使用してWordPressをインストールする方法

  2. Dockerコンテナを一覧表示する方法

  3. Dockerコンテナを終了する方法

  1. Dockerコンテナ内でプログラムを実行する方法は?

  2. 実行中のDockerコンテナでコマンドを実行する方法

  3. PostgreSQLをDockerコンテナとしてデプロイする方法