docker nginx가 여러 프로젝트를 배포하는 방법

王林
풀어 주다: 2023-05-14 16:16:12
앞으로
1320명이 탐색했습니다.

전제 조건

1. Docker가 로컬 컴퓨터와 서버에 설치되었습니다. 다운로드 방법은 Google에서 검색하세요

2. 이미 docker 허브에 계정이 있습니다:

3. 그리고 dockerfile의 몇 가지 지침을 이해하세요

dockerfile을 사용하여 이미지를 만드세요

이 머신에 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
로그인 후 복사

다음은 bash

cd web

docker build -t lilywang711/web .
로그인 후 복사

에 웹 디렉토리를 입력해 보세요. 인쇄 정보에 다음과 같은 내용이 보이면 이미지가 성공적으로 빌드된 것입니다

4c050212ce0d를 성공적으로 구축했습니다
lilywang711/web:latest

태그가 성공적으로 완료되었습니다. docker 이미지를 입력하여 현재 이미지 목록을 볼 수도 있습니다. docker 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

그런 다음 docker push lilywang711/web명령을 입력하세요. > 편의를 위해 방금 구축한 이미지를 서버 측에서 가져옵니다


배포해야 할 프로젝트가 여러 개인 경우 프로젝트 수만큼 위의 단계를 반복하면 됩니다.

서버 측 배포

docker nginx如何部署多个项目

Ssh 서버에 로그인하고, 현재 사용자 디렉터리(나는 루트 디렉터리)에 새 nginx 폴더를 만들고 그 안에 새 nginx.conf를 만듭니다.

nginx에 다음 내용을 작성합니다. .confdocker nginx如何部署多个项目rrreee

Next🎜🎜start docker systemctl start docker🎜🎜방금 만들고 업로드한 두 이미지를 가져옵니다🎜🎜docker pull lilywang711/web🎜🎜 docker pull lilywang711/web1🎜🎜다음 명령을 입력하여 컨테이너를 시작하세요🎜rrreee🎜다른 lilywang711/web1 이미지도 마찬가지입니다. 포트와 이름만 변경하세요🎜🎜docker run -itd --name web1 -p 81:80 -v /root/nginx/nginx.conf :/etc/nginx/nginx.conf lilywang711/web1🎜🎜 이때 docker ps를 입력하면 이 두 컨테이너가 이미 실행 중임을 확인할 수 있습니다🎜🎜프로젝트를 dockerize하고 nginx에서 실행합니다. 배포가 완료되었습니다🎜🎜🎜브라우저에 http://a.yourdomain.cn 및 http://b.yourdomain.cn을 입력하세요. 로컬 컴퓨터에서 각각 web과 web1 프로젝트에 해당하는 효과를 확인해보세요🎜🎜 🎜🎜🎜🎜🎜

위 내용은 docker nginx가 여러 프로젝트를 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!