>운영 및 유지보수 >Docker >Docker 서비스에서 다양한 디렉터리를 사용하는 방법에 중점을 둡니다.

Docker 서비스에서 다양한 디렉터리를 사용하는 방법에 중점을 둡니다.

PHPz
PHPz원래의
2023-04-19 15:26:53780검색

Docker는 애플리케이션을 빠르고 효율적으로 구축, 배포 및 실행할 수 있는 매우 널리 사용되는 컨테이너화 기술입니다. Docker 서비스는 Docker 클러스터 관리에 가장 일반적으로 사용되는 메커니즘 중 하나입니다. Docker 서비스를 사용하면 사용자는 여러 Docker 컨테이너를 하나의 서비스로 결합하여 고가용성, 로드 밸런싱 및 기타 목적을 달성할 수 있습니다. 이 문서에서는 Docker 서비스에서 다양한 디렉터리를 사용하는 방법에 중점을 둡니다.

도커 서비스란 무엇인가요?

Docker 서비스는 Docker 클러스터 관리 메커니즘 중 하나입니다. 여러 Docker 컨테이너를 하나의 서비스로 결합할 수 있습니다. Docker Service는 고가용성, 로드 밸런싱, 자동 확장 등의 기능을 구현하여 사용자가 서비스와 애플리케이션을 최적화하는 데 도움을 줍니다.

Docker 서비스는 복제본 및 글로벌과 같은 다양한 배포 전략을 지원합니다. 복제본 정책을 사용할 때 사용자는 시작할 컨테이너 수를 정의할 수 있으며 Docker 엔진은 클러스터 전체에 컨테이너 인스턴스를 자동으로 배포하고 관리합니다. 글로벌 전략을 사용하는 경우 Docker 엔진은 컨테이너 복사본을 시작하고 이를 클러스터의 각 노드에 배포합니다.

Docker 서비스 사용의 이점

Docker 서비스를 사용하면 많은 이점을 얻을 수 있으며, 몇 가지 주요 이점은 다음과 같습니다.

  • 고가용성: Docker 서비스는 노드가 실패하더라도 컨테이너의 고가용성을 쉽게 달성할 수 있습니다. 컨테이너의 자동 밸런싱 기능을 통해 다른 노드에서 새 컨테이너 인스턴스를 시작합니다.
  • 로드 밸런싱: Docker 서비스를 사용하면 로드 밸런싱을 쉽게 달성할 수 있으므로 로드 밸런싱 문제에 주의를 기울일 필요 없이 사용자의 애플리케이션이 항상 최상의 상태에 있을 수 있습니다.
  • 자동 확장: Docker 서비스는 자동 확장을 지원합니다. 사용자는 애플리케이션 확장을 위해 컨테이너 수만 조정하면 됩니다.

Docker 서비스는 어떻게 다른 디렉터리를 사용하나요?

Docker 서비스는 기본적으로 Dockerfile이 있는 디렉터리를 컨테이너 이미지의 빌드 컨텍스트로 사용합니다. 그러나 서로 다른 디렉터리에 서로 다른 이미지를 빌드해야 하는 경우에는 서로 다른 빌드 컨텍스트를 사용해야 합니다.

다음에서는 다양한 디렉터리를 사용하여 Docker 이미지를 빌드하고 Docker 서비스를 사용하여 애플리케이션을 배포하는 방법을 소개합니다.

  1. 디렉터리 구조 만들기

먼저 다음과 같은 디렉터리 구조를 만듭니다.

.
├── dockerfiles
│   ├── web1
│   │   ├── Dockerfile
│   │   └── index.html
│   └── web2
│       ├── Dockerfile
│       └── index.html
├── docker-compose.yml
└── services.yml

dockerfiles 디렉터리에 web1과 web2라는 두 개의 디렉터리를 각각 만들었습니다. 각 디렉터리에는 Dockerfile 파일과 index.html 파일이 포함되어 있습니다. 그 중 Dockerfile 파일은 Docker 이미지를 빌드하는 데 사용되며, index.html 파일은 컨테이너가 정상적으로 실행되는지 테스트하는 데 사용됩니다.

services.yml 파일에서 web1과 web2라는 두 개의 컨테이너를 배포하기 위해 web이라는 서비스를 정의합니다.

  1. Dockerfile 작성

이 예에서는 web1과 web2에 각각 Dockerfile을 만들었습니다.

web1 디렉터리의 Dockerfile 파일:

FROM nginx
COPY index.html /usr/share/nginx/html

web2 디렉터리의 Dockerfile 파일:

FROM nginx
WORKDIR /usr/share/nginx/html
COPY index.html .

여기에서는 서로 다른 Dockerfile 파일을 사용하고 각 파일에서 서로 다른 빌드 컨텍스트를 사용합니다. web1의 Dockerfile은 지정된 빌드 컨텍스트의 index.html 파일을 컨테이너로 복사하는 COPY 지시문을 사용합니다. web2 Dockerfile은 WORKDIR 명령과 COPY 명령을 사용합니다. 이 명령은 작업 디렉터리를 /usr/share/nginx/html로 설정하고 index.html 파일을 빌드 컨텍스트에서 컨테이너로 복사합니다.

  1. docker-compose.yml 파일 작성

우리는 여전히 docker-compose.yml 파일을 사용하여 서비스를 정의합니다. 파일 내용은 다음과 같습니다.

version: '3.7'

services:
  web1:
    build:
      context: ./dockerfiles/web1
    image: web1
    deploy:
      replicas: 2
    ports:
      - 8081:80

  web2:
    build:
      context: ./dockerfiles/web2
    image: web2
    deploy:
      replicas: 3
    ports:
      - 8082:80

docker-compose.yml 파일에서는 각각 다른 빌드 컨텍스트를 사용하는 web1과 web2라는 두 가지 서비스를 정의합니다. 동시에 컨테이너 수와 포트 매핑을 제어하기 위해 각 서비스의 복제본 및 포트 속성도 지정합니다.

  1. 서비스 배포

마지막으로 Docker Stack 명령을 사용하여 서비스를 배포합니다.

$ docker stack deploy -c services.yml myapp

명령 실행이 완료되면 다음 명령을 사용하여 서비스 상태를 볼 수 있습니다.

$ docker stack ps myapp
  1. 서비스 테스트

서비스 배포가 완료된 후 브라우저를 사용하여 다음 URL에 액세스하여 web1 및 web2 서비스가 제대로 작동하는지 테스트할 수 있습니다.

web1 서비스:

http://localhost:8081

web2 서비스:

http://localhost:8082

If 모든 것이 괜찮습니다. 각 서비스 문서 콘텐츠에 index.html이 표시됩니다.

요약

이 글에서는 Docker Service에서 컨테이너 구축을 위해 다양한 디렉터리를 사용하는 방법을 소개했습니다. 우리는 서로 다른 Dockerfile을 사용하여 두 개의 서비스를 생성하고 docker-compose.yml 파일에 서비스의 빌드 컨텍스트를 정의했습니다. 마지막으로 서비스를 배포하고 서비스가 제대로 실행되는지 테스트했습니다. 이는 Docker 서비스를 사용하는 사용자가 다양한 디렉터리에 컨테이너 이미지를 구축할 수 있는 편리한 방법을 제공합니다.

위 내용은 Docker 서비스에서 다양한 디렉터리를 사용하는 방법에 중점을 둡니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.