웹사이트 검색

Debian 11에 Docker 및 Docker Compose를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. 도커 설치
  4. Docker 서비스 관리
  5. Docker를 사용하여 컨테이너 실행\n
  6. Docker Compose 설치
  7. Docker Compose 명령
  8. 결론

Docker는 컨테이너화된 환경에서 애플리케이션을 개발, 배송 및 실행할 수 있는 무료 오픈 소스 플랫폼입니다. 애플리케이션을 인프라에서 분리할 수 있습니다. 이렇게 하면 컨테이너를 더 쉽고 간단하고 안전하게 구축, 배포 및 관리할 수 있습니다. Docker는 로컬 개발 환경을 설정하도록 설계되었습니다.

애플리케이션에 대해 둘 이상의 컨테이너를 만들려면 Docker Compose를 사용해야 합니다. Docker-compose는 다중 컨테이너 애플리케이션을 정의하고 공유하는 데 사용되는 도구입니다. Docker Compose를 사용하면 YAML 파일을 사용하여 모든 서비스를 정의하고 간단한 명령을 사용하여 한 번에 실행할 수 있습니다.

이 자습서에서는 Debian 11 시스템에 Docker 및 Docker Compose를 설치하는 방법을 보여줍니다.

전제 조건

  • Debian 11을 실행하는 서버.\n
  • 루트 암호는 서버에서 구성됩니다.\n

시작하기

먼저 시스템 패키지 캐시를 최신 버전으로 업데이트하는 것이 좋습니다. 다음 명령을 사용하여 업데이트할 수 있습니다.

apt-get update -y

완료되면 다음 명령을 사용하여 다른 필수 종속 항목을 설치합니다.

apt-get install apt-transport-https software-properties-common ca-certificates curl gnupg lsb-release -y

도커 설치

기본적으로 최신 버전의 Docker는 Debian 11 공식 리포지토리에 포함되어 있지 않습니다. 따라서 APT에 Docker CE 리포지토리를 추가해야 합니다. 다음 명령을 사용하여 추가할 수 있습니다.

curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

Docker 리포지토리가 추가되면 리포지토리를 업데이트하고 다음 명령을 사용하여 Docker CE를 설치합니다.

apt-get update -y
apt-get install docker-ce docker-ce-cli -y

설치 후 다음 명령을 사용하여 Docker CE 버전을 확인합니다.

docker version

다음 출력이 표시되어야 합니다.

Client: Docker Engine - Community
 Version:           20.10.8
 API version:       1.41
 Go version:        go1.16.6
 Git commit:        3967b7d
 Built:             Fri Jul 30 19:54:22 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:52:31 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Docker 서비스 관리

systemd 유틸리티를 사용하여 Docker 서비스를 쉽게 관리할 수 있습니다.

Docker 서비스를 시작하려면 다음 명령을 실행합니다.

systemctl start docker

Docker 서비스를 다시 시작하려면 다음 명령을 실행합니다.

systemctl restart docker

Docker 서비스를 중지하려면 다음 명령을 실행합니다.

systemctl stop docker

시스템 재부팅 시 Docker 서비스가 시작되도록 하려면 다음 명령을 실행하십시오.

systemctl enable docker

Docker 상태를 확인하려면 다음 명령을 실행합니다.

systemctl status docker

다음 출력에서 Docker의 상태를 확인해야 합니다.

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-09-10 07:19:35 UTC; 27s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 29018 (dockerd)
      Tasks: 7
     Memory: 32.6M
        CPU: 407ms
     CGroup: /system.slice/docker.service
             ??29018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809035575Z" level=info msg="scheme \"unix\" not registered, fallback to def>
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809219999Z" level=info msg="ccResolverWrapper: sending update to cc: {[{uni>
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809410545Z" level=info msg="ClientConn switching balancer to \"pick_first\">
Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.897972507Z" level=info msg="Loading containers: start."
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.186940748Z" level=info msg="Default bridge (docker0) is assigned with an IP>
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.298681937Z" level=info msg="Loading containers: done."
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.356364773Z" level=info msg="Docker daemon" commit=75249d8 graphdriver(s)=ov>
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.357524464Z" level=info msg="Daemon has completed initialization"
Sep 10 07:19:35 debian11 systemd[1]: Started Docker Application Container Engine.
Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.401626151Z" level=info msg="API listen on /run/docker.sock"

Docker를 사용하여 컨테이너 실행

docker run 명령을 사용하여 이미지를 다운로드하고 컨테이너 내에서 실행할 수 있습니다.

예를 들어 다음 명령을 실행하여 Debian 이미지를 다운로드하고 컨테이너를 실행합니다.

docker run --rm -it --name test debian:latest /bin/sh

다음 출력이 표시되어야 합니다.

Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
955615a668ce: Pull complete 
Digest: sha256:08db48d59c0a91afb802ebafc921be3154e200c452e4d0b19634b426b03e0e25
Status: Downloaded newer image for debian:latest
#

다음 명령을 실행하여 Debian 컨테이너를 종료합니다.

#exit

Docker Compose 설치

기본적으로 Docker Compose는 Debian 11 기본 리포지토리에서 사용할 수 없습니다. 따라서 Github에서 Docker Compose 바이너리를 다운로드해야 합니다.

다음 명령을 실행하여 Docker Compose 바이너리를 다운로드합니다.

curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-Linux-x86_64 | cut -d '"' -f 4 | wget -qi -

다운로드가 완료되면 다운로드한 파일에 실행 권한을 설정하고 다음 명령을 사용하여 시스템 경로로 이동합니다.

chmod +x docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/bin/docker-compose

다음으로 다음 명령을 사용하여 Docker Compose 버전을 확인합니다.

docker-compose version

다음 출력이 표시되어야 합니다.

docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

Docker 작성 명령

Docker 작성 파일을 실행하려면 다음 명령을 실행하십시오.

docker-compose up -d

실행 중인 모든 컨테이너를 중지하려면 다음 명령을 실행합니다.

docker-compose down

실행 중인 컨테이너를 일시 중지하고 일시 중지를 해제하려면 다음 명령을 실행합니다.

docker-compose pause
docker-compose unpause

실행 중인 모든 컨테이너를 나열하려면 다음 명령을 실행합니다.

docker-compose ps

실행 중인 서비스의 로그를 확인하려면 다음 명령을 실행합니다.

docker-compose logs

결론

축하합니다! Debian 11에 Docker 및 Docker Compose를 성공적으로 설치했습니다. 이제 Docker 및 Docker Compose를 사용하여 애플리케이션을 빌드, 배송 및 실행할 수 있습니다.