1.ドッカーネットワーク
1. Dockerネットワークの概要
Docker にはデフォルトで仮想ルート docker0 があります。docker0 のネットワーク モードはブリッジ モードです。Docker コンテナはホスト間でこの仮想ルートを通じて転送されます。これは LAN に相当します。コンテナを作成するとき、docker はコンテナごとに仮想ネットワーク カードを作成します。コンテナです。
2. Docker の一般的なネットワーク モード
ブリッジ: ブリッジ モード
none: ネットワークが指定されていません
host: 共有ホスト ネットワーク
コンテナ: コンテナ ネットワーク
3. Dockerネットワークの共通コマンド
docker network --help
2. Docker はコンテナ間のネットワーク間アクセスをどのように実現するか
1. すべての Docker ネットワークを表示する
docker network ls
2. 別のネットワークを作成して、コンテナ内のさまざまなネットワーク セグメントのネットワークをシミュレートします (カスタム サブネット マスクとゲートウェイ)。
docker network create --driver bridge --subnet 192.168.1.0/16 --gateway 192.168.1.0 diffnet
3. docker0 と diffnet を使用して 2 つの Tomcat を起動します
4. 異なるネットワーク上の Tomcat コンテナ情報を表示する
docker network inspect diffnet # diffnet 替换成对应的network id或name
docker0 ネットワークでの対応するコンテナ IP:
docker-tomcat01:172.17.0.4
docker-tomcat02:172.17.0.5
diffnet ネットワーク上の対応するコンテナ IP:
diffnet-tomcat01:192.168.0.1
diffnet-tomcat02:192.168.0.2
5. コンテナに ping コマンドをインストールする
コンテナに入った後、pingコマンドが使用できない場合は、以下のコマンドを使用してコンテナ内にインストールします
apt-get update
apt install net-tools
apt install iputils-ping
内部インストールが失敗した場合は、次の方法を使用して ping コマンド インストールを実行できます。
1.在宿主机上使用以下命令手动下载 BusyBox:
wget https://busybox.net/downloads/binaries/1.21.1/busybox-x86_64
2.然后将下载的文件复制到容器内:
docker cp busybox-x86_64 <容器名称或ID>:/usr/local/bin/busybox
3.在容器内创建符号链接并安装 ping 命令:
docker exec -it <容器名称或ID> ln -s /usr/local/bin/busybox /bin/ping
4.给下载的文件授予执行权限:
chmod +x /usr/local/bin/busybox #容器内执行
6. コンテナ内で ping コマンドを使用して、接続を確認します。
検査結果は次のとおりです。同じネットワークには ping が実行できますが、他のネットワーク セグメントには ping が実行できません。
7. docker0 のコンテナを diffnet ネットワークに接続します
docker network connect diffnet docker-tomcat01
コマンドを使用して diffnet 情報を表示する
docker network inspect diffnet
docker-tomcat01 は、connect コマンドを通じて diffnet のメタデータに追加されます。
コンテナ docker-tomcat01 に再度入り、別のネットワークで ping コマンド接続テストを実行すると、結果は次のようになります。
これにより、Dockerコンテナ間のクロスネットワークアクセス機能が実現されました。