기계적 인조 인간

centos 7에서 docker를 설치하고 사용하는 방법

Learn CentOS Part 3 - Exploring the Linux Filesystem

Learn CentOS Part 3 - Exploring the Linux Filesystem

차례:

Anonim

Docker는 거의 모든 곳에서 실행할 수있는 휴대용의 자급 자족 컨테이너로 애플리케이션을 신속하게 빌드, 테스트 및 배포 할 수있는 컨테이너화 기술입니다.

이 튜토리얼에서는 CentOS 7에 Docker CE를 설치하고 기본 Docker 개념 및 명령을 탐색하는 방법을 살펴 봅니다.

전제 조건

이 학습을 진행하기 전에 다음 전제 조건이 충족되는지 확인하십시오.

  • CentOS 7 서버 sudo 권한을 가진 루트가 아닌 사용자로 로그인했습니다. 새 sudo 사용자를 작성하는 방법에 대해이 안내서를 확인하십시오.

CentOS에 Docker 설치

Docker 패키지는 공식 CentOS 7 저장소에서 사용 가능하지만 항상 최신 버전이 아닐 수도 있습니다. 권장되는 접근 방식은 Docker의 저장소에서 Docker를 설치하는 것입니다.

CentOS 7 서버에 Docker를 설치하려면 다음 단계를 수행하십시오.

  1. 시스템 패키지를 업데이트하고 필요한 종속성을 설치하십시오.

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

    다음으로 Docker 안정 리포지토리를 시스템에 추가하는 다음 명령을 실행하십시오.

    sudo yum-config-manager --add-repo

    Docker 저장소가 활성화되었으므로 다음을 입력하여 yum을 사용하여 최신 버전의 Docker CE (Community Edition)를 설치하십시오.

    sudo yum install docker-ce

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

    sudo systemctl start docker sudo systemctl enable docker

    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

    작성 당시 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 명령을 실행할 수 있는지 확인하려면 다음 명령을 실행하여 테스트 이미지를 다운로드하고 컨테이너에서 실행하고 "Hello from Docker"메시지를 인쇄 한 후 종료하십시오.

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 명령 줄은 다음 형식을 따릅니다.

docker

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

docker

docker --help

도커 이미지

Docker 이미지는 이미지의 Dockerfile에서 실행 가능한 소프트웨어 응용 프로그램을 구성하는 명령을 나타내는 일련의 레이어로 구성됩니다. 이미지는 응용 프로그램 및 이진, 라이브러리 및 응용 프로그램 실행에 필요한 지침과 같은 다른 모든 종속성을 포함하는 변경 불가능한 이진 파일입니다. 즉, Docker 이미지는 본질적으로 Docker 컨테이너의 스냅 샷입니다.

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

Docker Hub 저장소에서 이미지를 검색하려면 search 부속 명령을 사용하십시오. 예를 들어 CentOS 이미지를 검색하려면 다음을 실행하십시오.

docker search centos

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

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

보시다시피 검색 결과에는 NAME , DESCRIPTION , STARS , OFFICIAL AUTOMATED 열 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 부속 명령을 사용하여 이미지를 삭제할 수 있습니다.

docker image rm centos

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

도커 컨테이너

이미지의 인스턴스를 컨테이너라고합니다. 컨테이너는 단일 응용 프로그램, 프로세스 또는 서비스에 대한 런타임을 나타냅니다.

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

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

다음 명령은 CentoOS 이미지를 기반으로 Docker 컨테이너를 시작합니다. 이미지가 로컬에 없으면 먼저 이미지를 다운로드합니다.

docker container run centos

언뜻 보면 아무 일도 일어나지 않은 것 같습니다. 글쎄, 그건 사실이 아니다. CentOS 컨테이너는 오래 실행되는 프로세스가없고 명령을 제공하지 않았기 때문에 부팅 후 즉시 중지됩니다. 따라서 컨테이너가 부팅되고 빈 명령이 실행 된 다음 종료됩니다.

스위치 -it 사용하면 명령 줄을 통해 컨테이너와 상호 작용할 수 있습니다. 대화식 컨테이너 유형을 시작하려면 다음을 수행하십시오.

docker container run -it centos /bin/bash

컨테이너가 시작되면 출력에서 ​​볼 수 있듯이 명령 프롬프트가 변경되어 컨테이너 내부에서 작업하고 있음을 의미합니다.

#

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

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli 실행중인 컨테이너가 없으면 출력이 비어 있습니다.

실행중인 컨테이너와 중지 된 컨테이너를 모두 보려면 -a 스위치를 전달하십시오.

docker container ls -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli c55680af670c centos "/bin/bash" 30 minutes ago Exited (0) 30 minutes ago modest_hawking c6a147d1bc8a hello-world "/hello" 20 hours ago Exited (0) 20 hours ago sleepy_shannon

하나 이상의 컨테이너를 삭제하려면 위에서 컨테이너 ID (또는 ID)를 복사하여 container rm 하위 명령 뒤에 붙여 넣으십시오.

docker container rm c55680af670c

결론

CentOS 7 시스템에 Docker를 설치하는 방법과 Docker 이미지를 다운로드하고 Docker 컨테이너를 관리하는 방법을 배웠습니다. 다중 컨테이너 Docker 애플리케이션을 정의하고 실행할 수있는 Docker Compose에 대해 읽을 수도 있습니다.

이 튜토리얼은 Docker 생태계의 표면을 거의 긁지 않습니다. 다음 기사 중 일부에서는 Docker의 다른 측면을 계속 살펴볼 것입니다. Docker에 대한 자세한 내용은 공식 Docker 설명서를 확인하십시오.

도커 센 토스