Dockerコンテナの接続

Dockerコンテナの接続

SSLが正しく機能するためには、WordPressのインストールを独自のサーバーに移行する必要がありました。オリジナルは、外部SSL証明書のインストールを許可しないGoDaddy共有ホスティングでホストされています。

少し妄想があり、セキュリティについて知っていたので、Dockerコンテナ内でサービスを実行して最悪のダメージを制限したかったのです。

Dockerコンテナを接続する方法がわかりません。たとえば、MySQL / MariaDBを実行しているDockerコンテナがありますが、WordPress PHPコードをホストして実行するFastCGIを実行している他のDockerコンテナとそのサービスを共有する方法がわかりません。

私のWebサーバー(NGINX)は現在Dockerコンテナの外部で実行されており、Dockerコンテナの公開ポートに物事をプロキシすることに問題はありません。しかし、FastCGIサーバー(つまりPHP)はMySQLコンテナにどのようにアクセスできますか?

Dockerで複数の独立サービスをペアリングする方法を詳しく説明するガイドはありますか?

答え1

Dockerコンテナがどのように機能するかは、特に設定がない限り、デフォルトで隔離されていることです。

質問に答えるには、必要なポートを開いてそのポートを介してコンテナを接続すると、指定したポートを介してのみ通信できます。

Dockerfileに指定されている場合、このコマンドは「EXPOSE」と呼ばれます。http://docs.docker.io/reference/builder/#expose

EXPOSE  41000

コンテナの起動時にコンテナの起動時に公開したいポートを転送することもできます(元のDockerfileで指定されたポートをオーバーライドします)。

sudo docker run -p 41000:41000 -d <your username>/<your image name>

-p, --publish=[] コンテナのポートを次の形式でホストに公開します。 ip:hostPort:containerPort | ip::container port | hostPort:containerPort(実際のマッピングを表示するには「docker port」を使用)

リンクもご覧ください。http://docs.docker.io/use/working_with_links_names/#working-with-links-names


WordPressとDockerに関する追加情報:

答え2

Dockerは実際に仮想化を実行せず、LXCコンテナ仮想化を使用して画像を処理して実行するためのツールです。私は実際にここでLXCとその機能を探していると思います。 LXCは仮想ネットワーキングを行うことができ、MySQLはネットワーク経由で接続できる。必要な唯一のことは、ビルディングブロックを互いに接続することです。

一般的な設定では、各ホストには一意のIPアドレスと一連のポートがあり、各ホストは仮想ネットワークを介して他のホストのTCP / IPサービスにアクセスできます。セキュリティはLinuxカーネルによって処理されます。セキュリティを処理する1つの方法は、古いiptablesベースのファイアウォールを使用することです。ただし、selinuxタグに基づいて他の方法がある可能性があります。

関連情報