Docker: Ubuntu 18.04 LTS에서 설치 및 기본 사용


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 18.04(Bionic Beaver)
  • Ubuntu 15.04(Vivid Vervet)

이 페이지에서

  1. Docker에 대해 알아야 할 사항\n
    1. 도커 이미지
    2. 도커 컨테이너
    3. 도커 레지스트리

    1. Ubuntu 저장소에서 Docker 설치
    2. Docker 저장소에서 Docker 설치

    Docker는 개발자와 시스템 관리자가 어디에서나 경량 컨테이너로 애플리케이션을 빌드, 패키징 및 실행할 수 있는 개방형 플랫폼을 제공하는 오픈 소스 프로젝트입니다. Docker는 소프트웨어 컨테이너 내부의 애플리케이션 배포를 자동화합니다. Docker 개발은 기업용 PaaS(Platform as a Service)인 dotCloud의 내부 프로젝트로 Solomon Hykes에 의해 시작되었지만 현재 소프트웨어는 docker 커뮤니티와 Docker Inc.에서 관리하고 있습니다. Docker에 대한 자세한 내용은 https: 문서에서 확인할 수 있습니다. //docs.docker.com/.

    Docker를 설치하려면 64비트 아키텍처가 필요하며 Linux 커널은 3.10 이상이어야 합니다. 여기서는 우분투 리눅스를 사용하겠습니다.

    도커에 대해 알아야 할 사항

    다음은 도커 세계에서 알아야 할 기본 용어입니다.

    도커 이미지

    Docker 이미지는 Docker 컨테이너의 기본 템플릿입니다. 이미지에는 일반적으로 쉽게 설치할 수 있는 OS 및 애플리케이션이 포함됩니다. Docker 이미지는 컨테이너를 실행하는 데 사용되며, Docker 허브 Dockerfile에 설치된 다양한 운영 체제 및 소프트웨어와 함께 많은 이미지를 찾을 수 있습니다.

    도커 컨테이너

    Docker 컨테이너는 Docker 이미지 위에서 실행되는 읽고 쓸 수 있는 이미지입니다. Docker는 통합 파일 시스템을 컨테이너의 백엔드로 사용하고 있습니다. 컨테이너에서 이루어진 모든 변경 사항은 기본 이미지 위의 새 레이어에 저장됩니다. 컨테이너는 애플리케이션을 설치하는 계층입니다. 각 컨테이너는 호스트 시스템에서 격리되어 실행되므로 안전한 애플리케이션 플랫폼을 제공합니다.

    도커 레지스트리

    Docker 레지스트리는 Docker 이미지의 저장소입니다. 공용 및 개인 저장소를 제공합니다. 공용 Docker 레지스트리를 Docker 허브라고 합니다. 여기서 우리는 우리 자신의 이미지를 밀고 당길 수 있습니다.

    우분투 18.04에 도커 설치

    이 섹션에서는 docker를 설치하는 방법을 안내합니다. 소프트웨어를 설치하기 전에 커널 버전과 OS 아키텍처를 확인하십시오. 다음 명령은 루트 사용자로 실행해야 합니다. 이 명령을 실행하여 Ubuntu 시스템의 루트가 되십시오.

    sudo su

    그런 다음 uname -a를 실행하여 현재 실행 중인 Linux 커널의 버전을 확인합니다.

    uname -a

    64비트 커널(x86_64)과 함께 커널 버전 4.15.0을 사용하고 있음을 알 수 있습니다.

    Ubuntu 버전을 확인하려면 다음을 실행하십시오.

    cat /etc/lsb-release

    이 명령은 Ubuntu 버전이 18.04임을 보여줍니다.

    새 소프트웨어를 설치하기 전에 Ubuntu를 업데이트하는 것이 좋습니다. 다음 명령을 실행하여 Ubuntu 리포지토리에서 최신 업데이트를 가져와 설치합니다.

    sudo apt-get update
    sudo apt-get upgrade

    이제 Docker를 서버에 설치할 준비가 되었습니다.

    Docker를 설치하려면 Ubuntu 리포지토리의 패키지를 사용하거나 Docker 리포지토리의 패키지를 사용할 수 있습니다.

    Ubuntu 리포지토리에서 Docker 설치

    Ubuntu 리포지토리에서 도커 버전을 설치하려면 아래 apt 명령을 실행할 수 있습니다.

    sudo apt install docker.io

    설치가 완료될 때까지 기다린 다음 Docker를 시작하고 systemctl 명령을 사용하여 부팅 시간에 추가할 수 있습니다.

    systemctl start docker
    systemctl enable docker

    도커 버전을 확인할 수도 있습니다.

    docker --version

    그리고 Ubuntu Repository에서 docker 17.12를 설치하게 됩니다.

    Docker 저장소에서 Docker 설치

    Docker 리포지토리에서 docker-ce를 설치하기 전에 아래와 같이 apt 명령을 사용하여 일부 종속성을 설치합니다.

    sudo apt install \
        apt-transport-https \
        ca-certificates \
        curl \
        software-properties-common

    설치가 완료되면 docker key와 docker nightly 리포지토리를 추가합니다.

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic nightly" > /etc/apt/sources.list.d/docker-nightly.list

    저장소를 업데이트합니다.

    sudo apt update

    이제 도커 저장소가 시스템에 추가되었습니다.

    apt-cache 명령을 사용하여 도커 저장소에서 제공하는 모든 도커 패키지를 확인합니다.

    sudo apt search docker-ce
    sudo apt-cache policy docker-ce

    그리고 아래와 같이 다른 도커 버전을 볼 수 있습니다.

    아래의 apt 명령을 사용하여 설치하십시오.

    sudo apt install docker-ce

    설치가 완료되면 docker 서비스를 시작하고 시스템 부팅 시마다 실행되도록 활성화합니다.

    systemctl start docker
    systemctl enable docker

    이제 시스템에 설치된 도커 버전을 확인하십시오.

    docker --version

    그러면 시스템에 docker 18.x가 설치됩니다. 이제 Docker 레지스트리에서 Docker 이미지를 다운로드하여 컨테이너 만들기를 시작할 수 있습니다.

    루트가 아닌 사용자로 Docker 실행

    도커를 일반/비루트 사용자로 실행하려면 새 시스템 사용자를 추가해야 합니다. hakase라는 새 사용자를 추가한 다음 docker 그룹에 추가합니다.

    hakase 사용자를 추가합니다.

    useradd -m -s /bin/bash hakase
    passwd hakase

    도커 그룹에 hakase use를 추가합니다.

    usermod -aG docker hakase

    이제 hakase 사용자로 로그인하고 docker 명령을 실행합니다.

    su - hakase
    docker run hello-world

    그리고 당신은 docker에서 hello world를 얻을 것입니다.

    도커의 기본 사용법

    이 섹션에서는 일반적으로 사용되는 docker 명령 옵션을 보여줍니다. 예를 들어 도커 이미지를 다운로드하는 방법, 컨테이너를 빌드하는 방법 및 컨테이너에 액세스하는 방법.

    새 컨테이너를 만들려면 먼저 OS와 함께 기본 이미지를 선택해야 합니다. 우분투 또는 centos 또는 다른. docker search 명령을 사용하여 기본 이미지를 검색할 수 있습니다.

    docker search ubuntu

    이 명령은 모든 우분투 이미지를 보여줍니다. docker search centos 등을 직접 시도해 볼 수 있습니다.

    이제 기본 이미지를 서버에 다운로드할 시간입니다. 다음 명령을 사용하십시오.

    docker pull ubuntu

    docker pull image-name 명령은 docker registry/DockerHub에서 서버로 이미지를 다운로드합니다.

    이제 다음 명령을 사용하여 다운로드한 모든 이미지를 볼 수 있습니다.

    docker images

    Ubuntu 이미지는 DockerHub/Docker Registry에서 다운로드했습니다. 다음 단계는 해당 이미지에서 컨테이너를 만드는 것입니다.

    컨테이너를 생성하려면 docker create 또는 docker run을 사용할 수 있습니다.

    docker create ubuntu:18.04

    docker create 명령은 새 컨테이너를 생성하지만 시작하지는 않습니다. 이제 실행 명령을 사용할 수 있습니다.

    docker run -i -t ubuntu:18.04 /bin/bash

    이 명령은 ubuntu 18.04 이미지를 기반으로 컨테이너를 생성 및 실행하고 컨테이너 내부에서 /bin/bash 명령을 실행합니다. 명령을 실행한 후 자동으로 컨테이너 내부에 있게 됩니다.

    exit 명령으로 컨테이너를 떠나면 컨테이너가 중지됩니다. 컨테이너가 백그라운드에서 실행되도록 하려면 명령에 -d 옵션을 추가하기만 하면 됩니다.

    docker run -i -t -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

    메모:

    /bin/sh -c "while true; do echo hello world; sleep 1; done" 이것은 "hello word"를 영원히 반향하는 bash 스크립트입니다.

    이제 다음 명령을 사용하여 백그라운드에서 실행 중인 컨테이너를 볼 수 있습니다.

    docker ps

    또는 해당 bash 명령의 로그 결과를 보려면 다음 명령을 사용할 수 있습니다.

    docker logs NAMES/ContainerID

    백그라운드 모드에서 실행되는 컨테이너의 셸에 어떻게 액세스할 수 있습니까?

    이 명령은 컨테이너의 셸에 연결합니다.

    docker exec -i -t NAMES/ContainerID /bin/bash

    실행 중인 Docker 컨테이너를 입력합니다.

    호스트 이름과 컨테이너 ID가 동일한 것을 볼 수 있습니다. 이는 컨테이너 셸 내부에 있음을 의미합니다. 해당 셸에서 "exit"를 입력하면 해당 셸에서 나가지만 컨테이너는 계속 실행됩니다.

    자주 사용하게 될 또 다른 명령은 다음과 같습니다.

    docker stop NAME/ContainerID

    이렇게 하면 컨테이너를 삭제하지 않고 중지하므로 다음 명령으로 다시 시작할 수 있습니다.

    docker start NAME/ContainerID

    컨테이너를 제거하려면 먼저 중지한 다음 다음 명령을 사용하여 제거하십시오.

    docker rm NAME/ContainerID

    이것은 Ubuntu에서 Docker의 설치 및 기본 사용법에 대한 간단한 소개일 뿐입니다. 여기에서 자세한 Docker 설명서 페이지를 찾을 수 있습니다.

    Docker에 대한 자세한 소개는 이 Howtoforge 자습서 시리즈(https://www.howtoforge.com/tutorial/how-to-use-docker-introduction/)에서 확인할 수 있습니다.

    결론

    Docker는 개발자가 애플리케이션을 배포하고 시스템 관리자가 안전한 가상 컨테이너 환경에서 애플리케이션을 관리할 수 있도록 지원하는 오픈 소스 컨테이너 가상화 플랫폼입니다. Docker는 Intel/AMD 64비트 아키텍처에서 실행되며 커널은 3.10 버전 이상이어야 합니다. Docker를 사용하면 컨테이너 내에서 애플리케이션을 빌드 및 실행한 다음 아무 걱정 없이 컨테이너를 docker를 실행하는 다른 시스템으로 이동할 수 있습니다.