Ubuntu 18.04에 Docker Compose 설치 방법

Ubuntu 18.04에 Docker Compose 설치 방법

2022-06-01 last update

10 minutes reading Ubuntu 18.04 Docker

소개


Docker는 소프트웨어 용기에 Linux 응용 프로그램을 자동으로 배치할 수 있는 좋은 도구이지만 그 잠재력을 충분히 이용하기 위해 응용 프로그램의 모든 구성 요소는 자신의 용기에서 실행해야 한다.대량의 구성 요소를 가진 복잡한 응용 프로그램에 대해 모든 용기를 조정하여 함께 시작하고 통신하며 닫는 것은 곧 처리하기 어려울 것이다.
Docker 커뮤니티에서는 하나의 YAML 파일을 사용하여 모든 Docker 컨테이너와 구성을 구성할 수 있는 유행하는 해결 방안Fig을 제시합니다.이렇게 유행하기 때문에 Docker 팀은 Docker가 Fig 소스 코드를 기반으로 창작하도록 결정하여 지금은 사용을 추천하지 않는다.
Docker Compose를 사용하면 컨테이너 내 링크와 볼륨을 시작, 닫기 및 설정하는 등 Docker 컨테이너의 프로세스를 보다 쉽게 조정할 수 있습니다.이 강좌에서는 최신 버전의 Docker Compose를 설치하여 다중 컨테이너 응용 프로그램을 관리합니다.

선결 조건


이 문서를 보려면 Ubuntu 18.04 서버가 필요합니다.
  • sudo 권한을 가진 비root 사용자(Initial Server Setup with Ubuntu 18.04는 이 권한을 설정하는 방법을 설명합니다.)
  • How To Install and Use Docker on Ubuntu 18.04
  • 단계 1 및 2단계 지침에 따라 Docker 설치
    참고: 이 강좌에서는 Docker Compose v1의 설치를 안내합니다. 이 버전에서는 docker-compose 을 사용합니다.Docker Compose v2부터 Docker는 compose CLI 플러그인 명령latest Ubuntu 22.04 version of this tutorial에서 설명한 대로 원래docker-compose가 아닌 CLI 플러그인 명령을 사용하기 시작했습니다.설치 방식은 다르지만 일반적으로 실제 사용 방법은 docker-compose 호출 중인 하이픈을 docker compose 로 삭제하는 것이다.완전 호환성에 대한 자세한 내용은 신규compose와 구docker-compose 사이official Docker documentation on command compatibility를 확인하십시오.

    1단계 - Docker Compose 설치


    Ubuntu 공식 저장소에서 Docker Compose를 설치할 수 있지만 최신 버전의 몇 가지 부차적인 버전이기 때문에 Docker의 GitHub 저장소에서 Docker Compose를 설치할 수 있습니다.다음 명령은 Releases 페이지의 명령과 약간 다르다.-o 로고를 사용하여 출력을 리디렉션하는 대신 출력 파일을 먼저 지정합니다. 이 문법은 sudo 사용 시 권한이 거부되는 오류를 피합니다.
    확인current release, 필요한 경우 다음 명령을 업데이트하십시오.
    1. sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    다음 권한 설정:
    1. sudo chmod +x /usr/local/bin/docker-compose
    그런 다음 버전을 확인하여 설치가 성공했는지 확인합니다.
    1. docker-compose --version
    그러면 설치된 버전이 인쇄됩니다.
    Output
    docker-compose version 1.29.2, build 5becea4c
    이제 Docker Compose가 설치되어 Hello World 예제를 실행할 수 있습니다.

    2단계 - Docker Compose를 사용하여 컨테이너 실행


    공용 Docker 레지스트리 Docker Hub에는 프레젠테이션 및 테스트를 위한 Hello World 이미지가 포함되어 있습니다.Docker Compose를 사용하여 컨테이너를 실행하는 데 필요한 최소 구성: 개별 이미지의 YAML 파일 호출:
    먼저 YAML 파일에 대한 디렉토리를 생성하여 이동합니다.
    1. mkdir hello-world
    2. cd hello-world
    그런 다음 YAML 파일을 생성합니다.
    1. nano docker-compose.yml
    다음 내용을 파일에 넣고 파일을 저장한 다음 텍스트 편집기를 종료합니다.
    docker 작성.yml 회사
    my-test:
        image: hello-world
    
    YAML 파일의 첫 번째 줄은 컨테이너 이름의 일부로 사용됩니다.두 번째 줄은 용기를 만드는 데 사용할 이미지를 지정합니다.명령docker-compose up을 실행하면 지정된 이름hello-world에 따라 로컬 이미지를 찾습니다.이렇게 하면 파일을 저장하고 종료할 수 있습니다.docker images 명령을 사용하여 시스템의 이미지를 수동으로 볼 수 있습니다.
    1. docker images
    로컬 이미지가 아예 없으면 열 머리글만 표시됩니다.
    Output
    REPOSITORY TAG IMAGE ID CREATED SIZE
    이제 ~/hello-world 디렉토리에서 다음 명령을 실행합니다.
    1. docker-compose up
    이 명령을 처음 실행할 때 hello-world라는 로컬 이미지가 없으면 Docker Compose는 Docker Hub 공용 저장소에서 이미지를 추출합니다.
    Output
    Pulling my-test (hello-world:latest)... latest: Pulling from library/hello-world c04b14da8d14: Downloading [==================================================>] c04b14da8d14: Extracting [==================================================>] c04b14da8d14: Extracting [==================================================>] c04b14da8d14: Pull complete Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9 Status: Downloaded newer image for hello-world:latest . . .
    참고 Docker 소켓에 대한 권한 오류가 발생하면 건너뛴 것입니다Step 2 of How To Install and Use Docker on Ubuntu 18.04.이 절차를 되돌려 완성하면 sudo 없이docker 명령을 실행할 수 있습니다.
    이미지를 가져온 후 docker-compose 컨테이너를 만들고 hello 프로그램을 연결하고 실행합니다. 이 프로그램은 설치가 실행 중인 것 같습니다.
    Output
    . . . Creating helloworld_my-test_1... Attaching to helloworld_my-test_1 my-test_1 | my-test_1 | Hello from Docker. my-test_1 | This message shows that your installation appears to be working correctly. my-test_1 | . . .
    그런 다음 작업에 대한 설명을 인쇄합니다.
    Output of docker-compose up
    . . . 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. . . .
    Docker 컨테이너는 명령이 활성 상태일 때만 실행되므로 hello 실행이 완료되면 컨테이너가 중지됩니다.따라서 활성 프로세스를 볼 때 열 제목이 표시되지만 hello-world 컨테이너가 실행되지 않기 때문에 열거되지 않습니다.
    1. docker ps
    Output
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    -a 플래그를 사용하여 다음 단계에 필요한 컨테이너 정보를 볼 수 있습니다. 이 플래그는 활성 컨테이너뿐만 아니라 모든 컨테이너를 표시합니다.
    1. docker ps -a
    Output
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 06069fd5ca23 hello-world "/hello" 35 minutes ago Exited (0) 35 minutes ago drunk_payne
    완료 후 컨테이너를 제거하는 데 필요한 정보가 표시됩니다.

    단계 3 - 이미지 삭제(선택 사항)


    불필요한 디스크 공간을 사용하지 않도록 로컬 이미지를 삭제합니다.이를 위해서는 docker rm 명령을 사용하여 참조된 이미지의 모든 컨테이너를 삭제하고 컨테이너 ID 또는 이름을 따라야 합니다.다음은 방금 실행된 docker ps -a 명령의 컨테이너 ID입니다.교체 컨테이너의 ID를 확인하십시오.
    1. docker rm 06069fd5ca23
    참조된 모든 이미지의 컨테이너를 삭제한 후 이미지를 삭제할 수 있습니다.
    1. docker rmi hello-world

    결론


    현재 Docker Compose를 설치했습니다. Hello World 예시를 실행하여 설치를 테스트하고 테스트 이미지와 용기를 삭제했습니다.
    Hello World 예시에서 설치를 확인했지만 간단한 구성은 Docker Compose의 주요 장점 중 하나인 Docker 컨테이너 그룹을 위아래로 이동할 수 있다는 것을 보여주지 않았습니다.Docker Compose의 강력한 기능에 대해 알아보려면 이 실제 예제How To Configure a Continuous Integration Testing Environment with Docker and Docker Compose on Ubuntu 16.04를 보십시오. (주의: 본고는 18.04가 아닌 Ubuntu 16.04에 대한 것입니다)