5. Dockerを使用してWebアプリケーションを構築する
-
Web アプリケーションを実行する
-
イメージをロードします: docker pull training/webapp
-
コンテナーを作成します: docker run -d -P training/webapp python app.py
-
-d: コンテナをバックグラウンドで実行します。
-
-P: コンテナ内で使用されるネットワーク ポートを、使用するホストにランダムにマップします。
-
-
-
Web アプリケーションとコンテナーを表示する
-
-P は、ホスト ポートを表示するための追加の PORTS ポートを追加します。
-
ブラウザ経由でWEBアプリケーションにアクセス可能(ホストIP:ホストポート)
-
-p パラメーターを使用して別のポートを設定することもできます (ホスト ポートは 4000 に設定されます): docker run -d -p 4000:5000 training/webapp python app.py
-
-
ネットワークポートのクエリ
-
コンテナポートからホストにマッピングされたポート番号を表示します: docker port (CONTAINER ID)
-
-
WEBアプリケーションのログを表示する
-
docker logs -f (コンテナID)
-
-
WEBアプリケーションコンテナのプロセスを確認する
-
dockerトップ(コンテナID)
-
-
WEB申込みを確認する
-
docker Inspection(コンテナID)
-
-
WEBアプリケーションを停止する
-
docker stop(コンテナID)
-
-
WEBアプリケーションコンテナを再起動する
-
docker start(コンテナID)
-
docker restart(コンテナID)
-
-
WEBアプリケーションコンテナの削除
-
コンテナを削除するときは、コンテナが停止状態である必要があります。そうでない場合は、次のエラーが報告されます: docker rm (CONTAINER ID)
-
-f: docker rm -f (CONTAINER ID) を追加することで、実行中のコンテナを強制的に削除することもできます。
-
6. コンテナ接続
- ネットワーク ポート マッピング。abc はブラウザ経由でコンテナにアクセスできます。さらに、docker では、ifconfig 経由で IP を表示し、その IP 経由で他の Docker にアクセスできます。
- docker run -d -P training/webapp python app.py
- -P は、ホスト ポートにランダムにマッピングされたコンテナの内部ポートです。
- docker run -d -p 4000:5000 トレーニング/webapp python app.py
- -p は、指定されたホスト ポートにバインドされたコンテナの内部ポートです。
- 127.0.0.1 をバインドするなど、コンテナがバインドされるネットワーク アドレスを指定できます。
- docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
- Docker のトランスポート層プロトコルを変更 (tcp→udp)
- docker run -d -p 127.0.0.1:5002:5000/udp training/webapp python app.py
- docker run -d -P training/webapp python app.py
- Dockerコンテナ相互接続
- 新しい Docker ネットワークを作成します: docker network create -d Bridge (ネットワーク名)
- コンテナーを実行し、新しく作成したネットワークに接続します: docker run -itd --name test1 --network test-net debian /bin/bash (注: debian イメージを使用します。ubuntu イメージは ping と vim をインストールできません)
- 2 番目のコンテナーを作成し、新しく作成したネットワークに接続します: docker run -itd --name test2 --network test-net debian /bin/bash
- 2 つのコンテナ (コンテナ名) で相互に ping できます
- DNSの構成
- すべてのコンテナに DNS を構成する
- ホストの /etc/docker/daemon.json ファイルを変更する
-
例 { "dns" : [ "114.114.114.114", "8.8.8.8" ] }
-
- 再起動すると有効になります
- ホストの /etc/docker/daemon.json ファイルを変更する
- コンテナのDNS情報を出力します: docker run -it --rm (ミラー名) cat /etc/resolv.conf
- 指定したコンテナーに DNS を手動で設定します: docker run -it --rm -h (コンテナーのホスト名) --dns=114.114.114.114 --dns-search=test.com debian
- --rm: コンテナの終了時にコンテナ内のファイル システムを自動的にクリーンアップします。
-
-h HOSTNAME または --hostname=HOSTNAME: コンテナーのホスト名を設定します。これは、コンテナー内の /etc/hostname および /etc/hosts に書き込まれます。
-
--dns=IP_ADDRESS: DNS サーバーをコンテナの /etc/resolv.conf に追加し、コンテナがこのサーバーを使用して /etc/hosts にないすべてのホスト名を解決できるようにします。
-
--dns-search=DOMAIN: コンテナの検索ドメインを設定します。検索ドメインが .example.com に設定されている場合、host という名前のホストを検索するときに、DNS は host だけでなく host.example.comも検索します。 。
- すべてのコンテナに DNS を構成する