前提条件
1. Docker はローカル コンピューターとサーバーにインストールされています。Google でダウンロードできます。
2. Docker のアカウントをすでに持っています。ハブに登録し、ドア:
3 に送信します。docker に精通し、dockerfile のいくつかの命令を理解する必要があります
dockerfile を使用してイメージを作成します
このマシンの場合 web というプロジェクトがある
#Web ルート ディレクトリに新しい dockerfile を作成し、次の内容を記述しますfrom nginx:1.13.6-alpine label maintainer="lilywang <lilywang.cd@gmail.com>" arg tz="asia/shanghai" env tz ${tz} run apk upgrade --update \ && apk add bash tzdata \ && ln -sf /usr/share/zoneinfo/${tz} /etc/localtime \ && echo ${tz} > /etc/timezone \ && rm -rf /var/cache/apk/* copy dist /usr/share/nginx/html cmd ["nginx", "-g", "daemon off;"]
. |____dockerfile |____dist // 为项目打包后的文件 | |____index.html
cd web docker build -t lilywang711/web .
正常にビルドされた 4c050212ce0d正常に lilywang711/web のタグが付けられました: 最新
docker イメージを入力して現在のイメージ リストを表示することもできます
docker Push lilywang711/web を入力します。構築したイメージは docker Hub にアップロードされ、後でサーバー上にイメージをプルできるようになります。プロジェクトはいくつありますか? 必要な数のミラーを構築するだけです
サーバー側の展開
Ssh でログインします。サーバーにアクセスし、現在のユーザー ディレクトリ (私はルート ディレクトリ) に新しい nginx フォルダーを作成し、その中に置きます。 新しい nginx.conf を作成します。次の内容を nginx.conf に書き込みます。
user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { use epoll; worker_connections 2048; } http { include /etc/nginx/mime.types; # include /etc/nginx/conf.d/*.conf; root /usr/share/nginx/html; index index.html index.htm; server { listen 80; server_name a.yourdomain.cn; location / { } } server { listen 80; server_name b.yourdomain.cn; location / { proxy_pass http://your_vps_ip:81; } } server { listen 80; server_name localhost; location / { } } }
Next
systemctl start docker
作成してアップロードした 2 つのイメージをプルします
docker pull lilywang711/web
docker pull lilywang711/web1
Enter 次のコマンドはコンテナを開始します
docker run -itd --name web -p 80:80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web // -i 交互模式运行容器, -t 为容器分配一个伪终端,-d 后台运行容器,可直接连写 -itd // --name 是给该容器起个叫web的名字,方便辨识 // -p 是绑定端口 本机端口80:容器端口80 // -v 声明volume,意思是将容器中的/etc/nginx/nginx.conf 挂载到 宿主机里的/root/nginx/nginx.conf,以后配置nginx只需要修改/root/nginx/nginx.conf就行了
docker run -itd --name web1 -p 81: 80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web1
この時点で、
docker ps
プロジェクトを Docker 化して、nginx にデプロイしました。
ブラウザに http://a.yourdomain.cn と http://b を入力します。yourdomain.cn は、ローカル コンピュータの Web プロジェクトと web1 プロジェクトにそれぞれ対応する効果を確認できます
以上がdocker nginx が複数のプロジェクトをデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。