Debian 12, 11, 10에 Docker를 설치하는 방법

Docker는 애플리케이션을 컨테이너화하여 배포 프로세스를 단순화하고 여러 환경에서 일관성을 보장하는 기능으로 인해 빠르게 인기를 얻었습니다. 가벼운 특성과 효율적으로 확장할 수 있는 능력 덕분에 개발자와 IT 전문가 사이에서 인기가 높습니다.

  • 이식성: Docker 컨테이너는 Docker를 지원하는 모든 시스템에서 실행될 수 있으므로 애플리케이션이 다양한 환경에서 원활하게 작동하도록 보장합니다.
  • 격리: 각 컨테이너는 독립적으로 작동하므로 충돌 위험이 줄어들고 종속성 관리가 더 쉬워집니다.
  • 능률: 컨테이너는 호스트 OS 커널을 공유하므로 기존 가상 머신보다 효율적입니다.
  • 확장성: Docker를 사용하면 애플리케이션을 쉽게 확장하고 컨테이너를 추가하거나 제거하여 다양한 로드를 수용할 수 있습니다.
  • 버전 관리: 변경 사항을 추적하고 이전 버전으로 쉽게 롤백하여 개발 및 배포 워크플로를 향상시킵니다.

Debian 여러 가지 이유로 Docker와 페어링하는 것이 선호되는 선택입니다.

  • 안정: 강력하고 안정적인 특성으로 잘 알려진 데비안은 Docker 컨테이너의 안정적인 기반을 보장합니다.
  • 보안: 정기적인 업데이트와 보안에 대한 강력한 초점은 데비안을 애플리케이션 배포를 위한 안전한 환경으로 만듭니다.
  • 커뮤니티 지원: 크고 활동적인 커뮤니티는 광범위한 문서와 지원을 제공하여 문제 해결을 더 쉽게 만듭니다.
  • 성능: 가볍고 효율적인 Debian은 Docker 컨테이너가 최소한의 오버헤드로 원활하게 실행되도록 보장합니다.

소개를 마치고 터미널 명령과 다양한 방법을 활용하여 환경을 효율적으로 시작하고 실행하면서 Debian에 Docker를 설치하는 방법을 살펴보겠습니다.

Docker 사전 설치 단계

Debian 시스템에 Docker CE를 설정하는 것은 간단하면서도 세심합니다. 설치 과정을 살펴보기 전에 오류 없는 실행을 위한 단계를 설정해 보겠습니다.

1단계: 이전 Docker 인스턴스 제거

메모: Debian 저장소에서 설치된 Docker의 기본 버전이 없으면 제거 단계를 건너뛰세요.

먼저, 충돌 없는 환경을 보장하기 위해 기존 Docker 설치를 모두 제거해야 합니다. 이전 Docker 버전은 예정된 설치를 방해하고 예상치 못한 오류가 발생할 수 있습니다. 이전 Docker 반복이 있는 경우 제거하려면 다음 명령을 사용하십시오.

sudo apt remove docker docker-engine docker.io containerd runc

제거할 이전 Docker 인스턴스가 없는 경우 apt 패키지 관리자는 제거할 항목이 없다는 메시지를 반환합니다.

Docker를 제거해도 일반적으로 저장되어 있는 Docker 이미지, 컨테이너, 볼륨 또는 네트워크가 자동으로 삭제되지는 않는다는 점을 기억하는 것이 중요합니다. /var/lib/docker/. 새로 시작하고 모든 Docker 관련 데이터를 제거하려면 다음 명령을 사용하십시오.

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

이를 통해 설치 프로세스에 영향을 미칠 수 있는 잠재적인 Docker 잔여물을 모두 제거했습니다.

2단계: Docker 설치 전 Debian 패키지 업데이트

이전 Docker 버전을 제거한 후 다음 단계로 Debian 시스템이 완전히 업데이트되었는지 확인하세요. 업데이트하면 시스템 안정성이 향상되고 시스템 패키지가 최신 버전으로 유지되어 잠재적인 충돌과 취약성이 최소화됩니다.

사용 가능한 패키지 목록을 업데이트하고 설치된 패키지를 업그레이드하려면 다음 명령을 실행하십시오.

sudo apt update && sudo apt upgrade

이 명령은 먼저 사용 가능한 패키지 목록을 새로 고칩니다(apt update), 오래된 패키지의 업그레이드(apt upgrade).

Docker CE APT 저장소 가져오기

Docker CE를 성공적으로 설치하려면 Docker 저장소에 액세스하도록 Debian 시스템을 구성하는 것이 중요합니다. 여기에는 Docker 저장소를 시스템에 통합하고 해당 GPG 키를 가져오는 작업이 포함됩니다. 이러한 단계는 다운로드한 Docker 패키지의 신뢰성을 보장하고 무단 변경의 위험을 완화합니다.

1단계: Docker CE용 초기 패키지 설치

처음에는 시스템에 이 프로세스에 필요한 패키지가 부족할 수 있습니다. 이를 설치하여 수정해 보겠습니다. 다음 명령을 실행하여 이러한 중요 패키지를 설치하십시오.

sudo apt install ca-certificates curl gnupg lsb-release dirmngr software-properties-common apt-transport-https

여기서는 apt 다음과 같은 다양한 도구를 설치하는 패키지 관리자 ca-certificates 인증서 확인을 위해, curl 데이터를 전송하기 위해, gnupg 키 관리 및 이 프로세스에 필요한 기타 사항을 위해.

2단계: Docker CE GPG 키 추가

필수 패키지를 설치한 후 Docker GPG 키를 가져옵니다. 이 키를 사용하면 시스템이 Docker 저장소에서 다운로드한 패키지의 무결성을 확인할 수 있습니다.

GPG 키를 다운로드하고 저장하려면 다음 명령을 사용하십시오.

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

그만큼 curl 명령은 Docker 저장소에서 GPG 키를 가져온 다음 다음을 통해 처리됩니다. gpg --dearmor 이를 바이너리 형식으로 변환하려면 apt 필요합니다.

3단계: Docker CE APT 리포지토리 추가

GPG 키가 있으면 이제 Docker 저장소를 가져올 수 있습니다. 이를 수행하는 명령은 다음과 같습니다.

echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

복잡해 보이는 이 명령은 Docker 저장소를 시스템의 소스 목록에 추가하고 이를 이전에 다운로드한 GPG 키에 연결합니다. 이 링크는 Docker 저장소에서 다운로드한 패키지의 무결성을 확인하여 시스템을 안전하게 유지합니다.

Docker 설치 마무리

이 섹션에서는 Debian 시스템에 Docker CE를 설치하는 데 필요한 단계를 간략하게 설명합니다. 시스템의 리포지토리 정보를 업데이트하고, Docker를 설치하고, 테스트 Docker 이미지를 실행하여 설치를 확인하는 방법을 알아봅니다. 또한 이 섹션에는 Docker 컨테이너 및 이미지의 안전한 처리를 보장하는 중요한 보안 관행이 포함되어 있습니다.

1단계: Docker CE 리포지토리를 가져온 후 Debian APT 캐시 업데이트

Docker 설치를 시작하기 전에 시스템의 저장소 정보가 최신 상태인지 확인하는 것이 좋습니다. 특히 최근에 추가된 Docker 저장소의 경우 더욱 그렇습니다. 저장소 정보를 업데이트하려면 다음 명령을 실행하십시오.

sudo apt update

이 명령은 최신 버전의 패키지 및 해당 종속성에 대한 세부 정보를 포함하여 시스템의 패키지 목록을 새로 고칩니다.

2단계: APT 명령을 통해 Docker 설치

시스템의 리포지토리 정보가 업데이트되면 Docker 설치를 진행할 수 있습니다. Docker 경험을 향상시키는 몇 가지 추가 플러그인과 함께 Docker를 설치하는 명령은 다음과 같습니다.

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

이 명령에서는 다음을 설치합니다. docker-ce (도커 커뮤니티 에디션), docker-ce-cli (Docker 명령줄 인터페이스) containerd.io (업계 표준 런타임) 및 이미지 빌드 및 다중 컨테이너 애플리케이션 관리를 위한 두 개의 유용한 Docker 플러그인이 있습니다.

3단계: Debian에서 Docker CE 설치 확인

Docker 설치를 완료한 후 테스트 Docker 이미지를 실행하여 올바른 설치를 신중하게 확인하십시오.

sudo docker run hello-world

이 명령은 hello-world Docker 저장소의 이미지를 가져와 이 이미지에서 새 컨테이너를 생성하고 컨테이너를 실행합니다. 실행되면 환영 메시지가 인쇄되어 Docker가 예상대로 작동하는지 확인합니다.

4단계: 루트가 아닌 사용자로 Docker 실행

보안상의 이유로 Docker가 루트가 아닌 사용자로 실행되도록 구성하십시오. 이렇게 하면 해를 끼칠 수 있는 우발적이거나 악의적인 변경으로부터 시스템을 보호할 수 있습니다. 이후 섹션에서는 이 측면을 더 자세히 논의할 것입니다.

Docker 문제 해결 팁

Docker 컨테이너 및 이미지와 상호 작용하는 동안 문제가 발생하면 시스템을 재부팅하면 문제, 특히 경로 생성과 관련된 문제를 해결하는 데 도움이 될 수 있습니다. 시스템을 다시 시작하려면 다음 명령을 사용하십시오.

reboot

Systemd를 통해 Docker 관리

이 부분에서는 systemd를 사용하여 Docker 서비스를 조작하는 방법을 살펴봅니다. Systemd는 Debian을 포함한 많은 Linux 배포판의 기본 구성 요소이며 시스템 프로세스 및 서비스를 관리하는 기능을 제공합니다. Docker는 Debian 시스템에 systemd 장치를 설치하므로 Docker 서비스를 관리하는 효율적인 방법을 제공합니다.

systemd를 통해 Docker 서비스 시작

Docker를 활용하려면 서비스가 Debian 시스템에서 활발하게 실행되고 있어야 합니다. Systemd는 다음 명령을 통해 이를 촉진합니다.

systemctl start docker.service

이 명령은 Docker 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 구성하여 각 시작 후 가용성을 보장합니다.

systemd를 통해 Docker 서비스 중지

특정 상황에서는 Docker 서비스를 중지해야 할 수도 있습니다. Systemd는 이를 달성하기 위해 간단한 명령을 제공합니다.

systemctl stop docker.service

이 명령은 Docker 서비스를 중지하고 다음 시스템 부팅 시 자동으로 시작되지 않도록 합니다.

systemd를 통해 Docker 서비스 다시 시작

특히 Docker 관련 문제를 해결할 때 Docker 서비스를 다시 시작해야 하는 경우가 있습니다. Systemd는 다음 명령을 사용하여 Docker 서비스를 다시 시작하는 기능을 제공합니다.

systemctl restart docker.service

이 명령은 Docker 서비스를 중지하고 시작하여 최신 구성을 효과적으로 적용합니다.

systemd를 통해 Docker 서비스 상태 확인

Docker 서비스의 작동 상태(실행 중, 중지 또는 비활성 여부)를 확인하려면 다음 systemd 명령을 사용할 수 있습니다.

systemctl status docker.service

이 명령은 Docker 서비스의 현재 상태를 가져와 표시하여 작동 상태에 대한 통찰력을 제공합니다.

systemd를 통해 Debian 시스템 부팅에서 Docker 서비스 활성화

시스템 부팅 시 Docker 서비스가 자동으로 시작되도록 하려면 systemd를 통해 활성화하는 것이 선호되는 방법입니다.

systemctl enable docker.service

이 명령은 시스템이 부팅될 때마다 자동으로 시작되도록 Docker 서비스 설정을 조정하여 Docker 기능의 지속적인 가용성을 제공합니다.

systemd를 통해 시스템 부팅 시 Docker 서비스 비활성화

시스템 부팅 중에 Docker 서비스가 자동으로 시작되지 않도록 결정한 경우 systemd는 다음 명령을 사용하여 이 요청을 수용할 수 있습니다.

systemctl disable docker.service

이 명령은 Docker 서비스 설정을 변경하여 시스템 부팅 시 자동으로 시작되지 않도록 합니다.

systemd 명령을 활용하면 Debian 시스템에서 Docker 서비스를 효과적으로 관리하여 Docker의 작동 동작을 높은 수준으로 제어할 수 있습니다. 다음 섹션에서는 Docker 컨테이너 및 이미지 활용 및 관리에 대해 보다 구체적으로 설명합니다.

Docker 구성 방법의 예

이 가이드 부분에서는 Docker 구성 설정에 대해 자세히 알아봅니다. 여기에는 Docker를 루트가 아닌 사용자로 관리하여 보안을 강화하고 필요에 맞게 기본 로깅 드라이버를 변경하는 것이 포함됩니다.

1단계: 루트가 아닌 사용자로 Docker 실행

루트 사용자로 Docker를 실행할 수 있지만 잠재적인 보안 위험과 Debian 호스트 시스템의 실수로 인한 수정으로 인해 그렇게 하지 않는 것이 좋습니다. 대신 루트가 아닌 사용자 계정으로 Docker 작업을 관리하여 보안을 강화하세요.

Docker 관리를 위해 특별히 새 사용자를 생성하려면 다음 명령을 실행합니다.

sudo useradd -m dockeruser
sudo usermod -aG docker dockeruser

이 명령은 'dockeruser'라는 새 사용자를 생성하고 이 사용자를 Docker 그룹에 추가합니다. Docker 그룹의 구성원이 되면 사용자에게 Docker 명령을 실행하는 데 필요한 권한이 부여됩니다.

현재 사용자를 Docker 그룹에 할당하려면 'dockeruser'를 사용자 이름으로 바꾸세요. 예를 들어 'joshua'라는 사용자의 경우 명령은 다음과 같습니다.

sudo usermod -aG docker joshua

이러한 변경을 수행한 후 로그아웃했다가 다시 로그인하여 수정 사항을 적용하십시오. 경우에 따라 이러한 변경 사항을 전파하기 위해 시스템을 다시 시작해야 할 수도 있습니다.

사용자에게 Docker 명령을 실행할 수 있는 권한이 있는지 확인하려면 다음 명령을 사용하십시오.

docker ps

이 명령은 실행 중인 Docker 컨테이너 목록을 표시하여 성공적인 설치를 나타냅니다.

2단계: 기본 Docker 로깅 드라이버 수정

Docker는 기본적으로 JSON 파일 형식으로 이벤트를 기록합니다. 그럼에도 불구하고 Docker의 유연성 덕분에 기본 로깅 드라이버를 다른 형식으로 변경하거나 로그를 원격 로그 관리 시스템으로 전달하도록 구성할 수도 있습니다.

기본 로깅 드라이버를 수정하려면 다음과 같은 새 파일을 생성해야 합니다. daemon.json 에서 /etc/docker/ 예배 규칙서. nano와 같은 텍스트 편집기를 활용하여 다음 명령을 실행합니다.

sudo nano /etc/docker/daemon.json

파일이 열리면 다음 내용을 붙여넣습니다.

{
  "log-driver": "syslog",
  "log-opts": {
    "syslog-address": "tcp://logs.example.com:514",
    "syslog-facility": "daemon",
    "tag": "{{.Name}}"
  }
}

Docker는 이 구성에서 syslog 드라이버를 사용하고 로그를 원격 syslog 서버에 전달합니다. log.example.com을 syslog 서버 주소로 바꿉니다.

구성이 완료되면 다음 명령을 사용하여 Docker 데몬을 다시 시작하여 새 로깅 드라이버 설정을 적용합니다.

sudo systemctl restart docker.service

수정된 내용을 기억해 주세요. daemon.json 파일에 변경 사항을 적용하려면 Docker 데몬을 다시 시작해야 합니다.

Docker 명령 예

이 부분에서는 Docker 컨테이너, 이미지, 네트워크 및 볼륨을 효과적으로 관리하는 데 중요한 역할을 하는 Docker 명령의 사용법을 살펴봅니다. 그만큼 docker 명령은 Docker 환경에서 작업을 단순화하고 자동화하도록 설계된 강력하고 다양한 도구 세트를 제공합니다.

Docker 명령의 기본 사항

Docker 명령줄 인터페이스(CLI)에 익숙해지는 것은 Docker를 마스터하는 데 필수적입니다. 다음은 Docker 여정에서 자주 접하게 될 다양한 명령입니다.

  • docker run: 이미지에서 새 컨테이너를 시작합니다.
  • docker ps: 현재 실행 중인 모든 컨테이너를 표시합니다.
  • docker images: 로컬에서 사용 가능한 모든 이미지를 나열합니다.
  • docker build: Dockerfile에서 새 이미지를 구성합니다.
  • docker stop: 현재 실행 중인 컨테이너를 중지합니다.
  • docker rm: 컨테이너를 제거합니다.
  • docker rmi: 이미지를 삭제합니다.
  • docker network: Docker 네트워크를 관리합니다.
  • docker volume: Docker 볼륨을 관리합니다.

각 명령에는 필요에 맞게 동작을 수정할 수 있는 고유한 옵션 세트가 있습니다. 각 명령과 해당 옵션을 살펴보겠습니다.

그만큼 도커 실행 명령

그만큼 docker run 명령은 지정된 이미지에서 새 컨테이너를 만듭니다. 예를 들어 Debian 이미지에서 컨테이너를 시작하고 그 안에서 대화형 셸을 열려면 다음 명령을 사용합니다.

docker run -it debian:latest /bin/bash

그만큼 도커 ps 명령

그만큼 docker ps 현재 활성화된 모든 컨테이너를 참여시키기 위해 명령이 배포됩니다. 컨테이너 ID, 관련 이미지, 실행 상태 등 각 컨테이너에 대한 중요한 정보를 표시합니다. 실행 중인 모든 컨테이너 목록을 얻으려면 다음을 입력하면 됩니다.

docker ps

그만큼 도커 이미지 명령

그만큼 docker images 명령은 로컬에서 사용 가능한 모든 Docker 이미지를 나열하는 작업을 담당합니다. ID, 관련 저장소 및 태그를 포함하여 각 이미지에 대한 정보를 반환합니다.

docker images

그만큼 도커 빌드 명령

그만큼 docker build 명령은 Dockerfile에서 새 Docker 이미지를 만드는 데 사용됩니다. Dockerfile은 기본적으로 Docker 이미지를 구성하기 위한 지침이 포함된 스크립트입니다. 예를 들어 현재 디렉터리의 Dockerfile을 사용하여 'myimage'라는 새 이미지를 빌드하려면 다음 명령을 사용합니다.

docker build -t myimage:latest .

그만큼 도커 중지 명령

그만큼 docker stop 명령은 실행 중인 Docker 컨테이너를 정상적으로 종료합니다. 해당 ID를 사용하여 원하는 컨테이너를 타겟팅할 수 있습니다. 예를 들어 ID가 'abcdefg'인 컨테이너를 중지하려면 다음을 사용합니다.

docker stop abcdefg

그만큼 도커 RM 명령

사용 docker rm Docker 컨테이너를 삭제하는 명령입니다. 처럼 stop 명령에서 삭제하려는 컨테이너의 컨테이너 ID를 지정합니다. 예를 들어:

docker rm abcdefg

그만큼 도커 rmi 명령

사용 docker rmi Docker 이미지를 제거하는 명령입니다. 삭제하려는 이미지를 ID로 식별하세요. 예를 들어:

docker rmi 1234567

그만큼 도커 네트워크 명령

그만큼 docker network 명령은 Docker 네트워크를 생성, 나열 및 제거하기 위한 다목적 도구입니다. 예를 들어 'mynetwork'라는 새 네트워크를 만들려면 다음을 사용합니다.

docker network create mynetwork

그만큼 도커 볼륨 명령

마지막으로, docker volume 명령은 Docker 볼륨을 관리하는 기능을 제공합니다. 예를 들어 'myvolume'이라는 새 볼륨을 생성하려면 다음을 사용합니다.

docker volume create myvolume

Docker 컨테이너 관리 탐색

Docker 컨테이너를 효과적으로 관리하는 것은 Docker 환경의 기능과 수명에 큰 영향을 미칩니다. docker 명령은 Docker 컨테이너를 조작하기 위한 다양한 중요한 하위 명령을 제공합니다. 이러한 하위 명령을 사용하면 컨테이너 생성, 작업, 수정 및 삭제가 용이해집니다. 노련한 개발자이든 컨테이너화 초보자이든 이러한 명령을 이해하면 Docker 상호 작용을 크게 향상시킬 수 있습니다.

Docker 컨테이너 관리를 위한 핵심 명령

명령 docker ps 실행 중인 모든 컨테이너를 열거하기 위한 Docker 툴킷의 필수 도구입니다. 이 명령을 실행하면 모든 활성 컨테이너, 해당 이미지, 상태 및 고유 컨테이너 ID를 볼 수 있습니다.

docker ps

현재 활성화된 Docker 컨테이너를 종료하려면 docker stop 명령이 배포되었습니다. 중지하려는 컨테이너의 고유 ID 또는 이름을 추가합니다.

docker stop abcdefg

그만큼 docker rm 명령은 Docker 컨테이너를 근절하는 데 사용됩니다. 이 명령은 docker stop, 컨테이너의 고유 ID 또는 이름을 인수로 허용합니다.

docker rm abcdefg

컨테이너를 삭제하면 수정 사항이 모두 삭제된다는 점에 유의하는 것이 중요합니다. 변경 사항을 유지하려면 'docker commit' 명령을 사용하여 수정된 컨테이너에서 새 이미지를 생성해야 합니다.

docker commit을 사용하여 컨테이너 변경 사항 유지

Docker 컨테이너로 작업하는 동안 컨테이너를 사용자 정의하고 이러한 변경 사항을 새 이미지로 보존해야 할 수도 있습니다. 이는 다음을 사용하여 수행할 수 있습니다. docker commit 명령.

기본 이미지를 사용하여 새 컨테이너를 시작하고 이 컨테이너 내에서 필요한 변경을 수행합니다. 예를 들어 Debian 이미지에서 새 컨테이너를 시작하고 컨테이너 내부에서 셸을 여는 것을 고려해 보세요.

docker run -it --name mycontainer debian:latest /bin/bash

이 새 컨테이너에서는 구성 파일 수정, 새 소프트웨어 설치 등 다양한 작업을 수행할 수 있습니다. 원하는 대로 변경한 후 docker commit 이러한 변경 사항을 캡슐화하는 새로운 이미지를 생성하는 명령입니다. 'mycontainer' 컨테이너의 변경 사항으로 'myimage'라는 새 이미지를 생성하려면 다음 명령을 실행합니다.

docker commit mycontainer myimage:latest

이제 'mycontainer' 컨테이너의 변경 사항을 통합한 'myimage'라는 이미지를 보유하게 되었습니다. 이 새 이미지를 사용하여 업데이트된 구성이나 소프트웨어로 새 컨테이너를 생성하고 운영하세요.

docker commit 명령은 네트워킹 및 스토리지에 대한 변경 사항을 유지하지 않고 컨테이너의 파일 시스템에 대한 수정 사항만 저장한다는 점을 기억하세요. 네트워킹 및 스토리지의 변경 사항을 유지해야 하는 경우 docker network 및 docker Volume과 같은 다른 Docker 명령을 사용하는 것이 좋습니다.

마무리

우리는 토론 전반에 걸쳐 Debian Linux 배포판에 Docker Community Edition(CE)을 설치하고 관리하는 방법을 자세히 살펴보았습니다. Docker CE는 컨테이너화의 모든 이점을 제공하므로 개발자는 다양한 환경에서 분산 애플리케이션을 구축, 제공 및 실행할 수 있습니다. 여기에서 설명하는 Docker 명령 및 사용 사례는 Docker 컨테이너 관리를 위한 기본 지식을 제공합니다. 기사에서는 다음과 같은 기본적인 Docker 명령을 다루었습니다. docker run, docker ps, docker rm, 다른 사람.

Docker 생태계는 Docker 경험을 미세 조정하기 위해 탐색할 수 있는 수많은 명령과 옵션을 포함하여 훨씬 더 광범위하다는 점을 기억하십시오.

Joshua James

코멘트를 남겨주세요