2つの異なるWebアプリケーションを実行する2つのコンテナを作成しました。私はホスト名に応じて正しいコンテナにリクエストをリダイレクトするnginxプロキシを持つ3番目のコンテナを作成しようとしています。私のNginxの設定は、私がnginxの公式画像を実行しているときに正しいと思われ、コンテナ内で手動でプロキシ設定のデフォルト設定ファイルを変更しています。他のドッカーコンテナにリンクされたNginxプロキシ
私の2つのWebアプリケーションコンテナがすでに実行されている、と私は次のようにプロキシコンテナを開始:私が考えるほどクリーンな方法を行うには
docker run -i -t --link webapp1 --link webapp2 -p 80:80 nginx /bin/bash
を、私はコンテナを作成するためにDockerfileを作成したい、と構築時にローカルdefault.confファイルをコンテナに渡します。
これは私のnginxのプロキシ設定ファイルである:
server {
listen 80;
server_name www.webapp1.ch;
location/{
proxy_pass http://webapp1/;
}
}
server {
listen 80;
server_name www.webapp2.ch;
location/{
proxy_pass http://webapp2/;
}
}
およびプロキシドッカーファイル:
# Set the base image to use to Ubuntu
FROM nginx:latest
# Set the file maintainer (your name - the file's author)
MAINTAINER Me
# Update the default application repository sources list
RUN apt-get update && apt-get install -y \
wget \
vim
RUN rm /etc/nginx/conf.d/default.conf
COPY default /etc/nginx/conf.d/default.conf
CMD /etc/init.d/nginx restart
しかし、私はそれを構築しようとしているとき、残念ながら、コンテナは知りませんwebapp1とwebapp2のコンテナはまだリンクされていないので/ ipをアドレス指定します。このエラーが表示されます:
Step 7 : RUN /etc/init.d/nginx restart
---> Running in aef974e80e74
Restarting nginx: nginx2016/12/29 17:07:17 [emerg] 11#11: host not found in upstream "webapp1" in /etc/nginx/conf.d/default.conf:6
nginx: [emerg] host not found in upstream "webapp1" in /etc/nginx/conf.d/default.conf:6
nginx: configuration file /etc/nginx/nginx.conf test failed
私は間違っていますが、それを修正するための最良の方法はありますか?
ありがとうFarhad、私はあなたの答えを確認したと私は示唆したようにネットワークを作成して修正しました。今は正常に動作しています – Fab