私はWebデザイナーとして、VirtualBoxを使用してプロジェクト用の一時作業サーバーをセットアップしています。最近、ラップトップ上の仮想マシンの数を減らすように努めています(SSD容量の制限のため)、Dockerの学習と使用は、システムストレージ、完成した作業の展開、およびスキルセットの将来の保証の点で有益であると考えました。これまでは、NATに加えてホストのみのアダプターを使用して、ホスト(通常はWindows)から仮想マシンのAPMサーバーに接続しています)を使用しています。
以下は、私が通常使用する/ etc/network/interfaces設定です。
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# VBOX Host-only adapter
auto eth1
iface eth1 inet static
network 192.168.56.0
address 192.168.56.80
netmask 255.255.255.0
ホストオンリーアダプターにより多くのIPを割り当てるIPエイリアスについて考えています(192.168.56.81, 192.168.56.82...
)そして、それぞれを私のコンテナーのそれぞれにルーティングします。コンテナーはそれぞれ、私のプロジェクトの1つを実行します。 Dockerが独自のネットワークインターフェースdocker0
、VirtualBoxホストマシンからアクセスできません。私が言えることから、私はいくつかの可能なアプローチを持っています:
これらのアプローチのどれが私にとって最も実行可能な方法であるか知りたいです。
質問が十分に明確かどうかはわかりません。この質問に答えるために、さらに情報を提供する必要があるかどうかをお知らせください。
私の意見では、あなたの使用法については、Dockerネットワーキングの狂気を掘り下げる必要はないはずです。
コンテナーを実行するときにポートマッピングを使用することをお勧めします。
たとえば、Dockerfileを使用してdockerにApache
イメージを作成したとします。このコンテナーを実行する場合は、-p
オプションを使用してポートをマップします。
Sudo docker run -d -p=80:80 -p=443:443 -P Apache:latest
これにより、ローカルポート80がこのコンテナのポート80にマップされます。
したがって、ブラウザで http://127.0.0.1 にアクセスすると、コンテナにアクセスできます。
ポート80がすでにローカルで使用されている場合は、たとえばポート8080:-p 8080:80
を使用して、 http://127.0.0.1:808 にアクセスできます。
複数のプロジェクトがある場合は、複数のポートを使用するか、Apacheコンテナー内で仮想ホストを使用して、ホストの/etc/hosts
でdnsエイリアスを使用できます。