ホームページ >運用・保守 >Nginx >docker nginx が複数のプロジェクトをデプロイする方法

docker nginx が複数のプロジェクトをデプロイする方法

王林
王林転載
2023-05-14 16:16:121338ブラウズ

前提条件

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;"]

このとき、 web は:

.
|____dockerfile
|____dist // 为项目打包后的文件
| |____index.html

次に、bash で Web ディレクトリを入力します。

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

docker を開始

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就行了

他の lilywang711/web1 イメージについても同様です。ポートを変更して、 name

docker run -itd --name web1 -p 81: 80 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf lilywang711/web1

この時点で、docker ps

と入力すると、これら 2 つが表示されます。コンテナはすでに実行されています。

プロジェクトを Docker 化して、nginx にデプロイしました。

ブラウザに http://a.yourdomain.cn と http://b を入力します。yourdomain.cn は、ローカル コンピュータの Web プロジェクトと web1 プロジェクトにそれぞれ対応する効果を確認できます

docker nginx如何部署多个项目

以上がdocker nginx が複数のプロジェクトをデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。