Heim >Betrieb und Instandhaltung >Nginx >Wie Docker Nginx mehrere Projekte bereitstellt
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 erstellenfrom 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:latestSie 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
rrreeeDasselbe gilt für das andere lilywang711/web1-Image, ändern Sie einfach den Port und den Namen
docker run -itd - -name web1 -p 81:80 -v /root/nginx/nginx.conf :/etc/nginx/nginx.conf lilywang711/web1
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!