플러그인 파일의 목적:
-
파일은 docker 이미지 파일에 의해 제한되지 않습니다. 수정이 가능하며, 컨테이너를 다시 시작하고 업데이트된 파일을 사용할 수 있습니다.
로그 등 컨테이너 실행 중에 기록된 파일 이러한 정보는 외부 저장소에 자동으로 저장될 수 있으며 컨테이너 재시작으로 인해 손실되지 않습니다.
컨테이너를 실행하는 방법에는 두 가지가 있습니다.
-
docker run command
docker-compose command
docker run 명령 방법은 -v 매개변수를 사용하여 외부 호스트 디렉터리를 컨테이너 내의 경로에 마운트합니다. 마운트 지점이 여러 개인 경우 이를 통해 지정합니다. -v 매개변수이며 절대 경로만 사용할 수 있습니다. docker-compose 명령은 서비스 방법을 설명하기 쉽습니다. 서비스는 여러 컨테이너를 포함할 수 있으며 외부 경로의 마운트 구성도 다음을 통해 구성됩니다. -v 매개변수입니다. 물론 docker-compose.yml 파일의 상대 경로를 사용할 수 있다는 장점이 있습니다. 또 다른 장점은 docker-compose를 사용하여 컨테이너를 시작하는 명령이 비교적 간단하다는 것입니다.
이미지 패키징 경로 구조는 다음과 같다고 가정합니다.
├── build.sh ├── docker-compose.yml ├── Dockerfile ├── mynginx.conf ├── nginx-vol │ ├── conf.d │ │ └── mynginx.conf │ ├── html │ │ └── index.html │ └── logs │ ├── access.log │ └── error.log └── run.sh
Dockerfile은 이미지 빌드를 위한 구성 파일이고 내용은 다음과 같습니다.
FROM nginx LABEL maintainer="xxx" email="<xxx@xxx.com>" app="nginx test" version="v1.0" ENV WEBDIR="/data/web/html" RUN mkdir -p ${WEBDIR} EXPOSE 5180
nginx 기준으로 새 데이터 파일 경로를 /data/로 지정합니다. web/html이고 노출된 포트는 5180입니다.
다음 명령을 통해 새 이미지를 컴파일합니다.
docker build -t nginx:test-v1 .
컴파일된 이미지 태그는 test-v1입니다. 로컬 이미지를 볼 수 있습니다.
docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx test-v1 d2a0eaea3fac 56 minutes ago 141MB nginx latest 605c77e624dd 9 days ago 141MB
test-v1 태그가 있는 이미지가 새 이미지라는 것을 알 수 있습니다. 컴파일되었습니다.
nginx 외부 볼륨 nginx-vol 및 관련 conf.d, 로그 및 html 폴더를 만들고 해당 콘텐츠를 해당 디렉터리에 넣습니다. 예를 들어 html 폴더에 있는 iindex.html의 내용은 다음과 같습니다.
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>系统时间</title> <body> <div id="datetime"> <script> setInterval("document.getElementById('datetime').innerHTML=new Date().toLocaleString();",1000); </script> </div> </body> </head> </html>
사실 현재 시간을 표시하는 페이지일 뿐입니다.
로그 섹션은 컨테이너가 실행 중일 때 로그를 외부 저장소에 기록하는 것이 목적입니다. 컨테이너가 중지되거나 이미지가 삭제되더라도 실행 중인 로그는 계속 유지될 수 있습니다.
conf.d 아래는 nginx 맞춤형 구성이며, 내용은 다음과 같습니다.
server { listen 5180; #listen [::]:5180; server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /data/web/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; # proxy the PHP scripts to Apache listening on 127.0.0.1:80 #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; # deny access to .htaccess files, if Apache's document root # concurs with nginx's one #location ~ /\.ht { # deny all; }
실제로 포트와 루트 경로는 nginx의 기본 default.conf를 기반으로 수정되었습니다. 목적은 nginx 구성 파일이 가능하다는 것을 보여주기 위한 것입니다. 또한 외부 저장소를 사용합니다. 자체 프로그램이 구성 파일을 수정할 수 있는 경우 이러한 방식으로 컨테이너가 실행되는 동안 구성 파일을 수정할 수 있습니다. 수정된 구성 파일은 실제로 외부 저장소에 저장되므로 컨테이너 실행이 중지됩니다. 이미지 내부의 파일은 복원되지 않습니다.
docker run mode
편의상 실행 명령을 run.sh와 같은 쉘 스크립트에 작성할 수 있으며 내용은 다음과 같습니다.
docker run --name nginx-v1 -p 15180:5180 -v /home/project/nginx-test/nginx-vol/logs:/var/log/nginx -v /home/project/nginx-test/nginx-vol/conf.d:/etc/nginx/conf.d -v /home/project/nginx-test/nginx-vol/html:/data/web/html -d nginx:test-v1
명령에 -v가 3개 있는 것을 볼 수 있는데, 다른 외부 저장소 마운트에 해당합니다. 컨테이너 내의 다른 디렉터리에 다운로드하고 매핑합니다.
-p(소문자에 유의) 뒤의 포트는 각각 호스트 포트와 컨테이너 포트입니다. 즉, 호스트의 15180 포트가 컨테이너의 5180 포트에 매핑되므로 nginx 서비스 포트 5180이 컨테이너에 의해 시작됩니다. 호스트의 15180 포트에 액세스하고 매핑될 수 있습니다.
실행 중인 컨테이너 보기:
docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cf2275da5130 nginx:test-v1 "/docker-entrypoint.…" 6 seconds ago Up 5 seconds 80/tcp, 0.0.0.0:15180->5180/tcp, :::15180->5180/tcp nginx-v1
자세한 매핑 보기:
docker inspect nginx-v1
는 전체 정보를 표시하며 "마운트" 섹션에서 전체 스토리지 마운트 매핑을 볼 수 있습니다.
호스트의 nginx-vol/logs 바로 아래를 보면 컨테이너에서 실행 중인 nginx 로그가 자동으로 외부 호스트의 저장소에 기록되는 것을 확인할 수 있습니다.
ls -l nginx-vol/logs/ total 12 -rw-r--r-- 1 root root 1397 1月 8 15:08 access.log -rw-r--r-- 1 root root 4255 1月 8 15:59 error.log
컨테이너 중지:
docker stop nginx-v1
컨테이너 삭제:
docker rm nginx-v1
docker-compose 모드
docker-compose 설치
apt-get install docker-compose
docker-compose.yml 파일 쓰기
version: "3" services: nginx: container_name: mynginx image: nginx:test-v1 ports: - 80:5180 volumes: - ./nginx-vol/html:/data/web/html - ./nginx-vol/logs:/var/log/nginx - ./nginx-vol/conf.d:/etc/nginx/conf.d restart: always
container_name: 컨테이너 이름 지정
image: 사용 미러 및 해당 태그
ports: 호스트 포트 및 컨테이너 포트 매핑
volumes: 외부 저장소 마운트 매핑
컨테이너 시작
docker-compose up -d Creating network "nginxtest_default" with the default driver Creating mynginx ... Creating mynginx ... done
컨테이너 보기
docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 635e2999c825 nginx:test-v1 "/docker-entrypoint.…" 24 seconds ago Up 22 seconds 80/tcp, 0.0.0.0:80->5180/tcp, :::80->5180/tcp mynginx
docker-compose에 따라 컨테이너가 실행되는 것을 확인할 수 있습니다. .yml 구성, 포트, 이름, 마운트가 모두 정상입니다. 호스트의 포트 80에 액세스하는 것은 컨테이너의 5180 서비스에 해당합니다.
컨테이너를 중지하세요
docker-compose down Stopping mynginx ... done Removing mynginx ... done Removing network nginxtest_default
보시다시피 docker-compose를 사용하는 것이 더 쉽습니다.
위 내용은 Docker에 nginx 플러그인 파일을 설치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

NginxUnit은 다국어 프로젝트 및 동적 구성 요구 사항에 적합한 Apachetomcat, Gunicorn 및 Node.js 내장 HTTP 서버보다 낫습니다. 1) 여러 프로그래밍 언어를 지원하고, 2) 동적 구성 재 장전을 제공합니다. 3) 확장 성과 신뢰성이 높은 프로젝트에 적합한 내장로드 밸런싱 기능.

NginxUnit은 모듈 식 아키텍처 및 동적 재구성 기능으로 응용 프로그램 성능 및 관리 가능성을 향상시킵니다. 1) 모듈 식 설계에는 마스터 프로세스, 라우터 및 응용 프로그램 프로세스가 포함되어 효율적인 관리 및 확장을 지원합니다. 2) 동적 재구성을 통해 CI/CD 환경에 적합한 런타임시 구성을 완벽하게 업데이트 할 수 있습니다. 3) 다국어 지원은 언어 런타임의 동적로드를 통해 구현되어 개발 유연성을 향상시킵니다. 4) 고성능은 이벤트 중심 모델과 비동기 I/O를 통해 달성되며 높은 동시성에서도 효율적으로 유지됩니다. 5) 응용 프로그램 프로세스를 분리하고 응용 프로그램 간의 상호 영향을 줄임으로써 보안이 향상됩니다.

NginxUnit을 사용하여 여러 언어로 응용 프로그램을 배포하고 관리 할 수 있습니다. 1) nginxunit을 설치하십시오. 2) Python 및 PHP와 같은 다른 유형의 응용 프로그램을 실행하도록 구성하십시오. 3) 응용 프로그램 관리에 동적 구성 기능을 사용하십시오. 이러한 단계를 통해 응용 프로그램을 효율적으로 배포하고 관리하고 프로젝트 효율성을 향상시킬 수 있습니다.

Nginx는 높은 동시 연결을 처리하는 데 더 적합한 반면 Apache는 복잡한 구성 및 모듈 확장이 필요한 시나리오에 더 적합합니다. 1.NGINX는 고성능 및 낮은 자원 소비로 유명하며 높은 동시성에 적합합니다. 2. Aapache는 안정성과 풍부한 모듈 확장으로 유명하며 복잡한 구성 요구에 적합합니다.

NginxUnit은 동적 구성 및 고성능 아키텍처로 응용 프로그램 유연성 및 성능을 향상시킵니다. 1. 동적 구성을 사용하면 서버를 다시 시작하지 않고 응용 프로그램 구성을 조정할 수 있습니다. 2. 고성능은 이벤트 중심 및 비 블로킹 아키텍처 및 다중 프로세스 모델에 반영되며 동시 연결을 효율적으로 처리하고 멀티 코어 CPU를 활용할 수 있습니다.

Nginx와 Apache는 성능, 확장 성 및 효율성 측면에서 고유 한 장점과 단점을 가진 강력한 웹 서버입니다. 1) NGINX는 정적 컨텐츠를 처리하고 역전 프록시를 처리 할 때 잘 수행되며 동시 동시성 시나리오에 적합합니다. 2) Apache는 동적 컨텐츠를 처리 할 때 더 나은 성능을 발휘하며 풍부한 모듈 지원이 필요한 프로젝트에 적합합니다. 서버 선택은 프로젝트 요구 사항 및 시나리오에 따라 결정해야합니다.

Nginx는 높은 동시 요청을 처리하는 데 적합한 반면 Apache는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 이벤트 중심의 비 블로킹 아키텍처를 채택하며, 대결 환경에 적합합니다. 2. Apache는 프로세스 또는 스레드 모델을 채택하여 복잡한 구성 요구에 적합한 풍부한 모듈 생태계를 제공합니다.

Nginx는 웹 사이트 성능, 보안 및 확장 성을 향상시키는 데 사용될 수 있습니다. 1) 리버스 프록시 및로드 밸런서로서 Nginx는 백엔드 서비스를 최적화하고 트래픽을 공유 할 수 있습니다. 2) 이벤트 중심 및 비동기 아키텍처를 통해 Nginx는 높은 동시 연결을 효율적으로 처리합니다. 3) 구성 파일을 사용하면 정적 파일 서비스 및로드 밸런싱과 같은 규칙을 유연하게 정의 할 수 있습니다. 4) 최적화 제안에는 GZIP 압축 활성화, 캐시 사용 및 작업자 프로세스 조정이 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
