Dockerでコンテナを作成するときにコンテナIPを指定する実装例

Dockerでコンテナを作成するときにコンテナIPを指定する実装例

Docker はコンテナを作成するときに、デフォルトでブリッジ ネットワークを使用し、IP アドレスを自身で割り当てるため、自分で指定することはできません。

実際のデプロイではコンテナのIPを指定し、コンテナ自身でIPを割り当てさせないようにする必要があります。特にクラスタを構築する場合は固定IPが必要となります。

独自のブリッジ ネットワーク mynet を作成できます。コンテナーを作成するときに、ネットワークを mynet として指定し、IP を指定します。

ネットワークモードを表示

docker ネットワーク ls 

新しいブリッジネットワークを作成する

docker ネットワーク作成 --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet

ネットワーク情報を表示する

docker ネットワーク検査 mynet 

コンテナを作成し、コンテナのIPを指定します

docker run -e TZ="Asia/Shanghai" --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init

コンテナの実行

docker exec -it hadoop01 /bin/bash 

CentOSの最小インストールにはifconfigコマンドがありませんが、yumでインストールできます。

yum インストール -y ネットツール

SSHサービスをインストールする

yum インストール -y openssh-server

yum インストール -y openssh-clients

systemctl sshd.service を起動します

非ルートユーザーを追加する

ユーザー追加ブロック

パスワードブロック

ローカルクライアント経由でアクセスする(コンテナの作成時にポートを指定するか、独立した IP を構成する)

docker run -e TZ="Asia/Shanghai" -p 6001:22 --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init

または

ルート -p 172.18.12.0 マスク 255.255.255.0 10.0.75.2 を追加します

以下もご興味があるかもしれません:
  • Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。
  • Dockerコンテナはカスタムネットワークセグメントで固定IP/静的IPアドレスを指定します
  • Docker ネットワーク ブリッジ モードでコンテナ IP を指定する方法

<<:  ウェブページの要素の検査とソースコードの表示の違いについて

>>:  HTMLのマーキータグは、シームレスなスクロールマーキー効果を実現します。

推薦する

CentOS7 に MySQL データベースをインストールしてデバッグする詳細な手順 [例]

この例では、デバッグ用の MySQL データベースをダウンロードしてインストールする必要があります。...

MySQLにおけるACIDトランザクションの実装原理の詳細な説明

導入いつものように、シーンから始めましょう〜インタビュアー:「トランザクションの4つの特性をご存知で...

MySQL 8.0 ウィンドウ関数の紹介と概要

序文MySQL 8.0 より前は、Oracle、SQL SERVER、PostgreSQL などの他...

MySQL グリーン解凍バージョンのインストールと設定手順

手順: 1. MySQLデータベースをインストールする1. MySQL-5.6.17-winx64....

MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

この記事では、例を使用して MySQL ビューの管理ビュー操作について説明します。ご参考までに、詳細...

ハードコーディングに別れを告げ、フロントエンドテーブルがインスタンスコードを自動的に計算できるようにします。

序文私のチームが税制モジュールを開発していたとき、計算問題、特にグリッド内の計算を解決するために時間...

MySQL count(1)、count(*)、count(field)の違い

目次1. COUNTの初見2. COUNT(フィールド)、COUNT(定数)、COUNT(*)の違い...

MySQL データベース設計 3 つのパラダイム例分析

3つのパラダイム1NF: フィールドは分離不可能です。 2NF: 主キーがあり、非主キー フィールド...

Reactでファイルパスエイリアスを素早く設定する方法

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。F...

TypeScript ジェネリックを簡単に説明する方法

目次概要ジェネリック医薬品とはビルドシステムジェネリック医薬品の一般的な理解ジェネリッククラスジェネ...

VSCode+CMake+Clang+GCC 環境構築チュートリアル (Win10 の場合)

大学院入試に備えて、C/C++ を使って基本的なデータ構造とアルゴリズムを実装する予定です。アルゴリ...

Vue ElementUI フォームのフォーム検証

フォーム検証は、フロントエンド開発プロセスで最もよく使用される機能の 1 つです。私の個人的な仕事経...

Ubuntu 16.04 に Docker と nvidia-docker をインストールするための詳細なチュートリアル

目次DockerのインストールNvidia-docker のインストールDockerのインストール1...

WeChatアプレット開発によりホームページポップアップボックスアクティビティガイダンス機能が実現

目次1. 需要2. データベース設計3.Javaバックグラウンド構成の実装4. WeChatアプレッ...

Linux における nohup と & の使い方と違いの詳細な説明

例:例として、Python コード loop_hello.py を使用します。このコードは、ループ回...