SW/리눅스

CentOS 7 : Docker 설치, 사용 방법, 예제, 명령어

얇은생각 2020. 10. 15. 07:30
반응형

도커는 가상 어디에서나 실행할 수 있는 휴대용 자급자족 컨테이너로서 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 컨테이너화 기술입니다. 

도커 CE CentOS 7에 설치하는 방법에 대해 설명합니다. 기본 도커 개념 및 명령을 살펴봅니다.

 

CentOS 7 : Docker 설치, 사용 방법, 예제, 명령어

 

 

 

필수 구성 요소 

이 튜토리얼을 진행하기 전에 다음 필수 구성 요소를 충족해야 합니다.

- CentOS 7 서버 

- sudo 권한을 가진 루트 이외의 사용자로 로그인했습니다. 이 안내서에서는 새 sudo 사용자를 생성하는 방법을 확인합니다.

 

 

 

Docker CentOS에 설치 

도커 패키지는 공식 CentOS 7에서 사용할 수 있으며, 리포지토리가 항상 최신 버전이 아닐 수 있습니다. 도커 리포지토리에서 도커를 설치하는 것이 좋습니다. 

도커를 CentOS 7에 설치하고 다음 단계를 따릅니다.

 

01. 먼저 시스템 패키지를 업데이트하고 필요한 종속성을 설치합니다.

sudo yum update
sudo yum install yum-utils device-mapper-persistent-data lvm2

 

 

02. 그런 다음 다음 다음 명령을 실행하여 도커 안정적 리포지토리를 시스템에 추가합니다.

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

 

 

03. 이제 도커 리포지토리가 사용되도록 설정되었으므로 다음을 입력하여 yum을 사용하여 최신 버전의 도커 CE(Community Edition)를 설치합니다.

sudo yum install docker-ce

 

 

04. Docker 패키지가 설치되면 Docker 데몬을 시작하고 부팅 시 Docker 데몬이 자동으로 시작되도록 설정합니다.

sudo systemctl start docker
sudo systemctl enable docker

 

 

05. Docker 서비스가 실행 중인지 확인하려면 다음을 입력합니다.

sudo systemctl status docker

 

출력은 다음과 같아야 합니다.

docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2018-10-31 08:51:20 UTC; 7s ago
     Docs: https://docs.docker.com
 Main PID: 2492 (dockerd)
   CGroup: /system.slice/docker.service
           ├─2492 /usr/bin/dockerd
           └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml

 

 

06. 작성 시 현재 안정적인 버전의 Docker 18.06.1 Docker 버전 유형을 인쇄합니다.

docker -v

 

Docker version 18.06.1-ce, build e68fc7a

 

 

 

Sudo 없이 Docker 명령 실행 

기본적으로 Docker를 관리하려면 관리자 권한이 필요합니다. sudo를 미리 준비하지 않고 루트 사용자가 아닌 사용자로 Docker 명령을 실행하려면 Docker CE 패키지를 설치하는 동안 생성된 Docker 그룹에 사용자를 추가해야 합니다. 다음을 입력하여 이 작업을 수행할 수 있습니다.

sudo usermod -aG docker $USER

 

 

$USER는 사용자 이름을 유지하는 환경 변수입니다.

로그아웃했다가 다시 로그인하여 그룹 구성원 자격을 새로 고칩니다.

Docker가 성공적으로 설치되었고 sudo 없이 Docker 명령을 실행할 수 있는지 확인하려면 다음 명령을 실행하여 테스트 이미지를 다운로드하고 컨테이너에서 실행하고 "Docker에서 Hello" 메시지를 인쇄한 후 종료합니다.

 

 

docker container run hello-world

 

 

출력은 다음과 같아야 합니다.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

 

 

 

도커 커맨드라인 인터페이스 

이제 Docker 설치 작업이 완료되었으므로 Docker CLI의 기본 구문을 살펴보겠습니다.

도커 명령줄은 다음과 같은 형식을 취합니다.

docker [option] [subcommand] [arguments]

 

 

매개 변수 없이 도커를 입력하여 사용 가능한 모든 명령을 나열할 수 있습니다.

docker

 

 

[하위 명령]에 대한 도움이 더 필요한 경우 다음을 입력합니다.

docker [subcommand] --help

 

 

 

도커 이미지

도커 이미지는 실행 가능한 소프트웨어 응용 프로그램을 구성하는 이미지의 도커 파일에 있는 지시사항을 나타내는 일련의 계층으로 구성됩니다. 이미지는 응용 프로그램과 이진, 라이브러리 및 응용 프로그램 실행에 필요한 지시사항과 같은 기타 모든 종속성을 포함하는 불변의 이진 파일입니다. 간단히 말해, 도커 이미지는 기본적으로 도커 컨테이너의 스냅샷입니다.

Docker Hub는 클라우드 기반 레지스트리 서비스로, 다른 기능 중 하나는 Docker 이미지를 공용 또는 개인 저장소에 보관하는 데 사용됩니다.

Docker Hub 저장소에서 이미지를 검색하려면 search 하위 명령을 사용합니다. 예를 들어, CentOS 이미지를 검색하기 위해 다음을 실행합니다.

docker search centos

  

 

출력은 다음과 같아야 합니다.

NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   4257                [OK]
ansible/centos7-ansible            Ansible on Centos7                              109                                     [OK]
jdeathe/centos-ssh                 CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_…   94                                      [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   52                                      [OK]
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              40                                      [OK]
tutum/centos                       Simple CentOS docker image with SSH access      39

 

 

검색 결과를 볼 수 있듯이 이름, 설명, , 공식 및 자동화된 5개의 열이 있는 테이블을 인쇄합니다. 공식 이미지는 Docker가 업스트림 파트너와 함께 개발하는 이미지입니다.

만약 CentOS 7의 공식 빌드를 다운로드 받고 싶다면 image pull 하위 명령을 사용하여 이를 수행할 수 있습니다.

docker image pull centos

 

Using default tag: latest
latest: Pulling from library/centos
469cfcc7a4b3: Pull complete
Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Status: Downloaded newer image for centos:latest

 

 

인터넷 속도에 따라 다운로드에 몇 초 또는 몇 분이 걸릴 수 있습니다. 이미지를 다운로드한 후에는 다음을 사용하여 이미지를 나열할 수 있습니다.

docker image ls

 

 

출력은 다음과 같아야 합니다.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              e38bc07ac18e        3 weeks ago         1.85kB
centos              latest              e934aafc2206        4 weeks ago         199MB

  

 

어떤 이유로든 이미지를 삭제하려는 경우 image rm [image_name] 하위 명령을 사용하여 삭제할 수 있습니다.

docker image rm centos

 

Untagged: centos:latest
Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f
Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0

 

 

 

도커 컨테이너

이미지의 인스턴스를 컨테이너라고 합니다. 컨테이너는 단일 애플리케이션, 프로세스 또는 서비스의 런타임을 나타냅니다.

가장 적절한 비교는 아니지만 프로그래머인 경우 Docker 이미지를 클래스로, Docker 컨테이너를 클래스로 생각할 수 있습니다.

도커 컨테이너 하위 명령을 사용하여 컨테이너를 시작, 중지, 제거 및 관리할 수 있습니다.

다음 명령은 CentoOS 이미지를 기반으로 도커 컨테이너를 시작합니다. 이미지가 로컬에 없는 경우 먼저 다운로드됩니다.

docker container run centos

 

 

첫눈에, 아무 일도 일어나지 않은 것처럼 보일지도 모릅니다. , 그건 사실이 아닙니다. CentOS 컨테이너는 장기 실행 프로세스가 없고 명령을 제공하지 않았기 때문에 부팅 후 즉시 중지됩니다. 따라서 컨테이너가 부팅되어 빈 명령을 실행한 다음 종료됩니다.

-it 을 사용하면 명령줄을 통해 컨테이너와 상호 작용할 수 있습니다. 대화형 컨테이너를 시작하려면 다음을 입력합니다.

docker container run -it centos /bin/bash

 

 

컨테이너가 시작되면 출력에서 볼 수 있듯이 명령 프롬프트가 변경됩니다. 이는 컨테이너 내부에서 작업 중임을 의미합니다.

[root@719ef9304412 /]#

 

 

실행 중인 컨테이너를 나열하려면 다음을 입력합니다.

docker container ls

 

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
79ab8e16d567        centos              "/bin/bash"         22 minutes ago      Up 22 minutes                           ecstatic_ardinghelli

 

 

하나 이상의 컨테이너를 삭제하려면 위에서 컨테이너 ID(또는 ID)를 복사하여 컨테이너 rm 하위 명령 뒤에 붙여넣기만 하면 됩니다.

docker container rm c55680af670c

 

 

 

결론

Docker CentOS 7에 설치하는 방법을 배웠고 시스템 및 Docker 이미지를 다운로드하고 Docker 컨테이너를 관리하는 방법에 대해 설명합니다. 또한 다중 컨테이너 도커 응용프로그램을 정의하고 실행할 수 있는 도커 작성 에 대해 알아볼 수도 있습니다이번 포스팅에서는 도커 생태계의 표면을 거의 알아보지는 않았습니다.

반응형