Docker에 nginx 플러그인 파일을 설치하는 방법은 무엇입니까?
플러그인 파일의 목적:
-
파일은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

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

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

뜨거운 주제











Pinetwork 노드에 대한 자세한 설명 및 설치 안내서이 기사에서는 Pinetwork Ecosystem을 자세히 소개합니다. Pi 노드, Pinetwork 생태계의 주요 역할을 수행하고 설치 및 구성을위한 전체 단계를 제공합니다. Pinetwork 블록 체인 테스트 네트워크가 출시 된 후, PI 노드는 다가오는 주요 네트워크 릴리스를 준비하여 테스트에 적극적으로 참여하는 많은 개척자들의 중요한 부분이되었습니다. 아직 Pinetwork를 모른다면 Picoin이 무엇인지 참조하십시오. 리스팅 가격은 얼마입니까? PI 사용, 광업 및 보안 분석. Pinetwork 란 무엇입니까? Pinetwork 프로젝트는 2019 년에 시작되었으며 독점적 인 Cryptocurrency Pi Coin을 소유하고 있습니다. 이 프로젝트는 모든 사람이 참여할 수있는 사람을 만드는 것을 목표로합니다.

답변: PHP 마이크로서비스는 민첩한 개발을 위해 HelmCharts로 배포되고 격리 및 확장성을 위해 DockerContainer로 컨테이너화됩니다. 자세한 설명: HelmCharts를 사용하여 PHP 마이크로서비스를 자동으로 배포하여 민첩한 개발을 달성하세요. Docker 이미지를 사용하면 마이크로서비스의 신속한 반복 및 버전 제어가 가능합니다. DockerContainer 표준은 마이크로서비스를 격리하고 Kubernetes는 컨테이너의 가용성과 확장성을 관리합니다. Prometheus 및 Grafana를 사용하여 마이크로서비스 성능 및 상태를 모니터링하고 경보 및 자동 복구 메커니즘을 생성하세요.

Docker 컨테이너를 사용하여 사전 컴파일 된 패키지 (Windows 사용자의 경우)를 사용하여 소스 (숙련 된 개발자)를 컴파일하는 것을 포함하여 DeepSeek를 설치하는 방법에는 여러 가지가 있습니다. 공식 문서는 신중하게 문서를 작성하고 불필요한 문제를 피하기 위해 완전히 준비합니다.

Docker 컨테이너를 사용하여 Java EE 애플리케이션 배포: Dockerfile을 생성하여 이미지를 정의하고, 이미지를 빌드하고, 컨테이너를 실행하고, 포트를 매핑한 다음, 브라우저에서 애플리케이션에 액세스합니다. 샘플 JavaEE 애플리케이션: REST API는 Docker를 통해 배포한 후 localhost에서 액세스할 수 있는 데이터베이스와 상호 작용합니다.

답변: CI/CD 파이프라인 설정, 자동화된 테스트 및 배포 프로세스를 포함하여 빠른 반복을 달성하려면 PHPCI/CD를 사용하십시오. CI/CD 파이프라인 설정: CI/CD 도구를 선택하고, 코드 저장소를 구성하고, 빌드 파이프라인을 정의합니다. 자동화된 테스트: 단위 및 통합 테스트를 작성하고 테스트 프레임워크를 사용하여 테스트를 단순화합니다. 실제 사례: TravisCI 사용: TravisCI를 설치하고, 파이프라인을 정의하고, 파이프라인을 활성화하고, 결과를 봅니다. 지속적인 전달 구현: 배포 도구를 선택하고, 배포 파이프라인을 정의하고, 배포를 자동화합니다. 이점: 개발 효율성을 높이고 오류를 줄이며 납품 시간을 단축합니다.

1. 먼저 인터페이스를 연 후 왼쪽의 확장 아이콘 버튼을 클릭합니다. 2. 열린 확장 페이지에서 검색창 위치를 찾습니다. 3. 그런 다음 마우스로 Docker라는 단어를 입력하여 확장 플러그인을 찾습니다. 4 마지막으로 대상 플러그인을 선택하고 오른쪽을 클릭합니다. 하단에 있는 설치 버튼을 클릭하면 됩니다.

PHP 마이크로서비스 컨테이너화된 모니터링 및 로그 관리 모니터링: Prometheus 및 Grafana를 사용하여 리소스 사용량, 요청 수 및 대기 시간을 모니터링합니다. 로그 관리: ELKStack(ElasticSearch, Logstash, Kibana)을 사용하여 로그를 수집, 구문 분석 및 시각화합니다. Filebeat 에이전트를 배포하여 ElasticSearch에 로그를 보냅니다.

마이크로서비스 아키텍처는 PHP 프레임워크(예: Symfony 및 Laravel)를 사용하여 마이크로서비스를 구현하고 RESTful 원칙 및 표준 데이터 형식에 따라 API를 설계합니다. 마이크로서비스는 메시지 대기열, HTTP 요청 또는 gRPC를 통해 통신하고 모니터링 및 문제 해결을 위해 Prometheus 및 ELKStack과 같은 도구를 사용합니다.
