Heim >Betrieb und Instandhaltung >Nginx >Wie Docker Nginx mehrere Projekte bereitstellt

Wie Docker Nginx mehrere Projekte bereitstellt

王林
王林nach vorne
2023-05-14 16:16:121336Durchsuche

Voraussetzungen

1. Sie können bei Google nach der Download-Methode suchen

3 Seien Sie mit Docker vertraut. Und verstehen Sie einige Anweisungen in der Docker-Datei.

Verwenden Sie die Docker-Datei, um ein Image zu erstellen

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;"]
Die Datei befindet sich zu diesem Zeitpunkt im Web. Die Struktur ist:

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

Geben Sie als Nächstes das Webverzeichnis in Bash ein

cd web

docker build -t lilywang711/web .

Wenn Sie in den Druckinformationen Folgendes sehen, bedeutet dies, dass das Bild erfolgreich erstellt wurde

erfolgreich erstellt 4c050212ce0d

erfolgreich getaggt mit lilywang711/web:latest

Sie können auch docker images eingeben, um die aktuelle Bildliste anzuzeigen

Dann geben Sie den Befehl docker push lilywang711/web, um das Image, das Sie gerade erstellt haben, der Einfachheit halber auf den Docker-Hub hochzuladen. <p><br>Wenn mehrere Projekte bereitgestellt werden müssen, wiederholen Sie einfach die oben genannten Schritte sind Projekte</p>

Serverseitige Bereitstellungdocker images 查看当前的镜像列表

接下来输入命令 docker push lilywang711/web 就可将刚才构建好的镜像上传到docker hub里面,方便等会儿我们在服务端拉取镜像

如果是有多个项目需要部署,那就按照以上步骤重复来就行,有多少个项目就构建多少个镜像

服务端部署

ssh 登陆服务器,在当前用户目录下(我是root目录),新建 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 / {
  }
 }
}

接下来

启动docker systemctl start docker

拉取刚才制作并上传好的两个镜像

docker pull lilywang711/web

docker pull lilywang711/web1

输入以下命令启动容器

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镜像也同理,修改下端口和名字就好了

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

此时输入 docker ps

Ssh-Anmeldung beim Server, Erstellen Sie im aktuellen Benutzerverzeichnis (ich bin das Stammverzeichnis) einen neuen Nginx-Ordner und erstellen Sie darin eine neue nginx.conf
Schreiben Sie den folgenden Inhalt in nginx.conf code>docker pull lilywang711/web1

Geben Sie den folgenden Befehl ein, um Container zu starten

rrreee

Dasselbe gilt für das andere lilywang711/web1-Image, ändern Sie einfach den Port und den Namendocker nginx如何部署多个项目

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

docker nginx如何部署多个项目Geben Sie zu diesem Zeitpunkt docker ps ein und Sie können sehen, dass diese beiden Container bereits ausgeführt werden. Dockerisieren Sie das Projekt und führen Sie es auf Nginx aus. Die Bereitstellung ist abgeschlossen. Geben Sie http://a.yourdomain.cn und http://b.yourdomain.cn ein den Browser, um den Effekt zu sehen, der den Web- und Web1-Projekten auf dem lokalen Computer entspricht

🎜 🎜🎜🎜🎜🎜

Das obige ist der detaillierte Inhalt vonWie Docker Nginx mehrere Projekte bereitstellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen