Docker는 가상 어디에서나 실행할 수 있는 휴대용 컨테이너로서 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 컨테이너화 플랫폼입니다.
Docker는 컨테이너 기술의 사실상의 표준이며 DevOps 엔지니어 및 이들의 지속적인 통합 및 제공 파이프라인에 필수적인 도구입니다.
이 튜토리얼에서는 Debian 9 기계에 Docker를 설치하는 과정을 안내하고 기본 Docker 개념과 명령을 살펴봅니다.
필수 구성 요소
이 튜토리얼을 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인합니다. 이 튜토리얼의 모든 명령은 루트 사용자가 아닌 사용자로 실행되어야 합니다.
Debian에 Docker를 설치
다음 단계에서는 도커의 리포지토리에서 안정적인 최신 도커 버전을 설치하는 방법을 설명합니다.
01. 설치된 패키지를 최신 버전으로 업데이트
sudo apt update
sudo apt upgrade
02. HTTPS를 통해 새 리포지토리를 추가하는 데 필요한 종속성을 설치합니다.
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2
03. 다음 curl 명령을 사용하여 리포지토리의 GPG 키를 가져옵니다.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
다음을 입력하여 시스템의 소프트웨어 리포지토리 목록에 Docker APT 리포지토리를 추가합니다.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$(lsb_release -cs)는 데비안 분포의 이름을 반환하며, 이 경우 확장된 상태로 반환됩니다.
04. 이제 도커 리포지토리가 사용 가능으로 설정되었으므로 적절한 패키지 목록을 업데이트하고 다음 기능을 사용하여 최신 버전의 도커 CE(Community Edition)를 설치합니다.
sudo apt update
sudo apt install docker-ce
05. 설치가 완료되면 도커 서비스가 자동으로 시작됩니다. 다음을 입력하여 확인할 수 있습니다.
sudo systemctl status docker
# ● docker.service - Docker Application Container Engine
# Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
# Active: active (running) since Fri 2018-07-27 17:02:07 UTC; 1min 14s ago
# Docs: https://docs.docker.com
# Main PID: 16929 (dockerd)
# CGroup: /system.slice/docker.service
06. 작성 당시 데비안 9가 사용할 수 있는 도커의 현재 버전은 18.06.0-ce입니다. 다음을 사용하여 도커 버전을 확인합니다.
docker -v
# Docker version 18.06.0-ce, build 0ffa825
기본적으로 관리자 권한이 있는 사용자만 Docker 명령을 실행
sudo를 미리 입력하지 않고 루트 사용자가 아닌 사용자로 Docker 명령을 실행하려면 Docker CE 패키지를 설치하는 동안 생성된 Docker 그룹에 사용자를 추가해야 합니다. 다음을 입력하여 이 작업을 수행할 수 있습니다.
sudo usermod -aG docker $USER
$USER는 사용자 이름을 유지하는 환경 변수입니다.
로그아웃했다가 다시 로그인하여 그룹 구성원 자격을 새로 고칩니다.
sudo를 미리 준비하지 않고 도커 명령을 실행할 수 있는지 확인하려면 테스트 이미지를 다운로드할 다음 명령을 컨테이너에서 실행하고 "Hello from DOcker" 메시지를 인쇄한 후 종료합니다.
docker container run hello-world
출력은 다음과 같아야 합니다.
도커 커맨드 라인 인터페이스
이제 Docker를 설치했으므로 Docker CLI의 기본 구문을 살펴보겠습니다.
docker [option] [subcommand] [arguments]
사용 가능한 모든 명령을 나열하려면 매개 변수 없이 도커를 실행합니다.
docker
[하위 명령]에 대한 도움이 더 필요한 경우 다음과 같이 --help 스위치를 사용할 수 있습니다.
docker [subcommand] --help
도커 이미지
도커 이미지는 실행 가능한 소프트웨어 응용 프로그램을 구성하는 이미지의 도커 파일에 있는 지시사항을 나타내는 일련의 파일 시스템 계층으로 구성됩니다. 이미지는 응용 프로그램과 라이브러리, 이진 파일 및 응용 프로그램 실행에 필요한 지시사항과 같은 기타 모든 종속성을 포함하는 불변의 이진 파일입니다.
도커 이미지는 도커 컨테이너의 스냅샷으로 생각할 수 있습니다.
대부분의 도커 이미지는 도커 허브에서 사용할 수 있습니다.
Docker Hub는 클라우드 기반 레지스트리 서비스로, 다른 기능 중 하나는 Docker 이미지를 공용 또는 개인 저장소에 보관하는 데 사용됩니다.
도커 이미지 검색
Docker Hub 레지스트리에서 이미지를 검색하려면 search 하위 명령을 사용합니다.
예를 들어 Debian 이미지를 검색하려면 다음을 입력합니다.
docker search debian
출력은 다음과 같아야 합니다.
검색 결과를 볼 수 있듯이 이름, 설명, 별, 공식 및 자동화된 5개의 열이 있는 테이블을 출력합니다.
공식 이미지는 Docker가 업스트림 파트너와 함께 개발하는 이미지입니다.
Docker Hub의 대부분의 Docker 이미지에는 버전 번호가 태그되어 있습니다. 태그가 지정되지 않으면 도커가 최신 이미지를 끌어옵니다.
도커 이미지 다운로드
Debian 이미지의 공식 빌드를 다운로드하려면 image pull 하위 명령을 사용하여 다운로드할 수 있습니다.
docker image pull debian
인터넷 속도에 따라 다운로드에 몇 초 또는 몇 분이 걸릴 수 있습니다.
태그를 지정하지 않았으므로 도커가 최신 데비안 이미지인 9.5를 가져올 것입니다. 이전 버전의 데비안 을 끌어오려면 Debian 8이라고 가정해 보겠습니다. 그러면 도커 이미지 풀 데비안을 사용해야 합니다.
이미지가 다운로드되면 다음을 입력하여 이미지를 나열할 수 있습니다.
docker image ls
출력은 다음과 같습니다.
도커 이미지 제거
어떤 이유로든 이미지를 삭제하려는 경우 image rm [image_name] 하위 명령을 사용하여 삭제할 수 있습니다.
docker image rm debian
도커 컨테이너
이미지의 인스턴스를 컨테이너라고 합니다. 컨테이너는 단일 애플리케이션, 프로세스 또는 서비스의 런타임을 나타냅니다.
가장 적절한 비교는 아니지만 프로그래머인 경우 Docker 이미지를 클래스로, Docker 컨테이너를 클래스로 생각할 수 있습니다.
도커 컨테이너 하위 명령을 사용하여 컨테이너를 시작, 중지, 제거 및 관리할 수 있습니다.
도커 컨테이너 시작
다음 명령은 Debian 이미지를 기반으로 Docker 컨테이너를 시작합니다. 이미지가 로컬에 없는 경우 먼저 다운로드됩니다.
docker container run debian
첫눈에, 아무 일도 일어나지 않은 것처럼 보일지도 모릅니다. 음, 그건 사실이 아닙니다. 데비안 컨테이너는 부팅 후 즉시 중지됩니다. 장시간 실행되는 프로세스가 없고 명령을 제공하지 않았기 때문입니다. 따라서 컨테이너가 부팅되어 빈 명령을 실행한 후 종료됩니다.
스위치 - it 기능을 사용하면 명령줄을 통해 컨테이너와 상호 작용할 수 있습니다. 대화형 컨테이너를 시작하려면 다음을 입력합니다.
docker container run -it debian /bin/bash
# root@ee86c8c81b3b:/#
컨테이너가 시작되면 위의 출력에서 볼 수 있듯이 명령 프롬프트가 변경됩니다. 명령 프롬프트는 이제 용기 내부에서 작업 중임을 의미합니다.
도커 컨테이너 나열
실행 중인 컨테이너를 나열하려면 다음을 입력합니다.
docker container ls
실행 중인 컨테이너가 없으면 출력이 비어 있습니다. 모든 컨테이너를 보려면 -a 스위치를 통과시킵니다.
docker container ls -a
도커 컨테이너 제거
하나 이상의 컨테이너를 삭제하려면 컨테이너 ID(또는 ID)를 복사하여 컨테이너 rm 하위 명령 뒤에 붙여넣기만 하면 됩니다.
docker container rm c55680af670c
'SW > 리눅스' 카테고리의 다른 글
Debian 9 : Go 설치하는 방법, 예제, 명령어 (0) | 2020.12.01 |
---|---|
Ubuntu 18.04 : MariaDB 설치하는 방법, 예제, 명령어 (0) | 2020.11.30 |
CentOS 7 : PostgreSQL를 설치하는 방법, 예제, 명령어 (0) | 2020.11.28 |
Ubuntu 18.04 : Apache 가상 호스트 설정 방법, 명령어, 예제 (0) | 2020.11.27 |
Ubuntu 18.04 : Ghost를 설치하는 방법, 예제, 명령어 (0) | 2020.11.26 |