>운영 및 유지보수 >Docker >Docker를 프로덕션 환경에 배포하는 방법

Docker를 프로덕션 환경에 배포하는 방법

PHPz
PHPz원래의
2023-04-18 09:48:251059검색

소프트웨어 개발 및 배포의 복잡성이 계속 증가함에 따라 경량 컨테이너화 기술이 새로운 트렌드가 되었습니다. Docker는 현재 가장 널리 사용되는 컨테이너 기술 중 하나입니다. Docker는 개발자에게 보다 효율적이고 빠른 작업 방법을 제공하는 동시에 기업에 보다 유연하고 안정적인 배포 솔루션을 제공할 수 있습니다. 이 문서에서는 컨테이너화된 애플리케이션을 더 잘 관리하는 데 도움이 되도록 프로덕션 환경에 Docker를 배포하는 방법을 소개합니다.

  1. Docker 설치

Docker를 설치하기 전에 서버의 리소스 할당 및 보안 권한을 관리해야 합니다. Ubuntu 및 CentOS와 같은 주류 Linux 운영 체제를 사용하고 최신 버전의 Docker 엔진이 서버에 설치되어 있는지 확인하는 것이 좋습니다.

Docker 설치는 매우 간단하며 몇 단계만 거치면 됩니다.

1) 종속성 도구 설치: apt-get update && apt-get install -y apt-transport-https ca-certificates 컬 소프트웨어 속성-공통.

2) Docker의 공식 GPG 키 가져오기: 컬 -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -.

3) Docker 저장소 추가: add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable".

4) Docker 설치: apt-get update && apt-get install -y docker-ce.

설치가 완료된 후 docker 명령을 사용하여 Docker가 정상적으로 실행되는지 테스트할 수 있습니다. 예를 들어 docker version 명령을 실행하여 Docker 버전 정보를 확인합니다.

  1. Docker 구성

Docker를 설치한 후 Docker가 더 잘 작동하도록 몇 가지 기본 구성을 수행해야 합니다.

현재 주류 Docker CLI는 통신을 위해 Unix 도메인 소켓을 사용합니다. 기본적으로 docker 명령을 실행하는 사용자를 docker 사용자 그룹에 추가하면 Docker 데몬과 상호 작용할 수 있으므로 sudo 명령을 사용할 필요가 없습니다.

Docker를 구성할 때 다음 측면에도 주의해야 합니다.

1) Docker 구성 파일 업데이트

Docker의 데몬은 기본적으로 /etc/docker/daemon.json 파일을 읽어 구성 정보를 얻습니다. 파일을 열고 다음과 같은 필수 구성을 추가합니다.

{
"registry-mirrors": ["https://url-of-mirror"],
"max-concurrent-downloads": 5,
"debug ": true,
"log-driver": "syslog",
"log-opts": {
"syslog-address": "tcp://192.168.0.0:111",
"tag": "prod"
}
}

여기서 Registry-Mirrors는 더 빠른 Docker 이미지 가속기 소스를 구성하는 데 사용되며, max-concurrent-downloads는 동시에 다운로드되는 이미지의 최대 수를 지정하는 데 사용되며, 디버그 및 로그 드라이버가 사용됩니다. Docker의 디버그 로그를 활성화하고 syslog 로그 파일로 출력합니다.

2) Docker 저장소 디렉터리 설정

Docker는 기본적으로 /var/lib/docker 디렉터리에 저장됩니다. Docker 저장소 경로를 수정하면 Docker 파일 시스템 저장소 및 데이터 볼륨을 더 잘 관리할 수 있습니다. 리디렉션을 사용하여 데몬 구성 파일을 열고 다음 줄을 추가합니다:

{
"data-root": "/mnt/data/docker"
}

/data/docker/먼저 디렉터리를 수동으로 생성해야 합니다. 실제 배포 상황에 따라 배포되므로 적절한 저장 경로를 선택하세요.

  1. Docker 이미지 빌드

Docker에서는 Dockerfile 파일을 사용하여 애플리케이션 환경과 배포 방법을 정의할 수 있습니다. Dockerfile은 배포할 애플리케이션의 Docker 이미지를 빌드하는 방법을 지정하는 일련의 지침으로 구성된 텍스트 파일입니다.

Dockerfile을 작성하는 과정에서 FROM, RUN, COPY, EXPOSE, ENV, CMD 및 기타 지침을 사용하여 완전한 Docker 이미지를 구축할 수 있습니다:

FROM ubuntu:18.04
RUN mkdir /app
COPY /app.
WORKDIR /app
CMD python app.py

위 Dockerfile 스크립트는 Ubuntu 18.04를 기본 이미지로 사용하고 /app 디렉터리를 생성한 후 로컬 코드를 /app 디렉터리에 복사하고 마지막으로 작업 디렉터리를 /app으로 설정합니다. 를 누른 다음 python app .py 스크립트를 실행합니다.

다음과 같이 docker build 명령을 사용하여 Docker 이미지를 빌드합니다.

docker build -t myapp:latest .

버전 태그를 사용하여 Dockerfile의 버전 번호를 선언하는 것이 좋습니다. 예: FROM ubuntu :18.04 AS 빌드입니다.

  1. Docker 이미지 게시

Docker 이미지를 빌드한 후 이미지 웨어하우스에 게시하여 애플리케이션을 어디에나 배포할 수 있도록 준비해야 합니다. Docker Hub는 공개 Docker 이미지 저장소인 반면, 비공개 Docker 레지스트리는 비공개 Docker 이미지를 저장하는 데 사용될 수 있습니다.

Docker 이미지를 이미지 웨어하우스에 푸시하려면 인증이 필요합니다. 구체적인 방법은 다음과 같습니다.

1) Docker 로그인 콘솔을 초기화합니다: docker login Registry-name.

2) Docker Hub 또는 개인 Docker 레지스트리에서 사용되는 사용자 이름과 비밀번호를 입력하세요.

3) 이미지 게시: docker push Registry-name/myapp:latest.

이제 다른 곳에서 사용할 수 있도록 Docker 이미지를 Docker 레지스트리에 성공적으로 푸시했습니다.

  1. Docker 컨테이너 배포

Docker 컨테이너를 사용하여 Docker 이미지를 실행할 때 다음 명령을 사용할 수 있습니다.

docker run --name myapp -p 127.0.0.1:80:80 -d myapp:latest

그 중 --name 매개변수는 Docker 컨테이너의 이름을 지정하고, -p 매개변수는 컨테이너가 바인딩될 호스트 포트를 지정하며, -d 매개변수는 컨테이너가 백그라운드에서 실행 중임을 나타내며 myapp은 다음과 같습니다. 최신 버전은 방금 Docker 레지스트리에 푸시된 Docker 이미지입니다.

  1. Docker 컨테이너 관리

애플리케이션이 Docker 컨테이너에 배포된 후에는 관리가 필요합니다. docker ps, docker log, docker stop, docker rm 및 기타 명령을 사용하여 Docker 컨테이너를 관리할 수 있습니다.

구체적인 작업 방법은 다음과 같습니다.

1) 현재 실행 중인 Docker 컨테이너를 확인합니다: docker ps -a.

2) 지정된 Docker 컨테이너의 로그 보기: docker log myapp.

3) 지정된 Docker 컨테이너를 중지합니다. docker stop myapp.

4) 지정된 Docker 컨테이너 docker rm myapp을 삭제합니다.

  1. 결론

Docker 배포는 프로덕션 환경에서 중요한 작업입니다. Docker를 설치하고 기본 작업을 구성한 후에는 Docker 이미지를 빌드하고 Docker 레지스트리에 게시해야 합니다. 마지막으로 Docker 컨테이너를 사용하여 애플리케이션을 실행하고 관리하고 모니터링합니다. 위 내용은 이 글에서 Docker를 프로덕션 환경에 배포하는 방법에 대한 자세한 소개입니다. 도움이 되길 바랍니다.

위 내용은 Docker를 프로덕션 환경에 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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