오프라인 설치를 위한 Tarball로 Docker-Compose 스택 준비

3002 단어 dockertutorial

요구 사항



인터넷 연결 없이 일부 응용 프로그램을 실행해야 할 수 있는 Raspberry Pi 또는 기타 SBC에서 Docker를 실행해야 하는 요구 사항이 있는 경우가 많습니다. 처음에는 Docker Artifact를 염두에 두고 애플리케이션을 개발했을 수 있으며 docker-compose.yml를 사용하여 전체 스택으로 실행해야 했습니다.

거의 모든 경우에 스택을 가져오면 인터넷을 통해 레지스트리에서 이미지를 가져옵니다. 그러나 처음부터 인터넷이 없는 공간에 일부 SBC를 배포하려는 경우 코드 아티팩트를 패키지 또는 바이너리 번들로 개발해야 할 수 있습니다. 이 응용 프로그램에 일부 데이터베이스에 대한 종속성이 필요한 경우 장치를 준비하기 위해 지루한 bash 스크립트를 작성해야 합니다.
일부 사전 설치를 위해.

많은 리팩토링/다시 생각해야 할 것 같습니다!

걱정하지 마세요docker에는 정리된 항목이 있으며 docker savedocker load 기능을 제공합니다.

대본



Edge에서 IoT용 오픈 소스 스택tiguitto을 고려해 보겠습니다.

MQTT Broker, InfluxDB, Telegraf, Grafana와 같은 일부 표준 앱으로 구성됩니다. 이 모든 것
구성 요소는 docker-compose.yml 파일을 통해 결합됩니다.

이제 이전에 언급한 것처럼 대상 노드에 인터넷이 있었다면 스택 배송이 쉬웠을 것입니다.
Compose 파일을 노드로 보내기만 하면 모든 작업이 완료됩니다.

인터넷에 접속할 수 없는 경우 다음 두 가지를 배송해야 합니다.
  • docker-compose.yml
  • 작성 파일에 있는 서비스에 대한 압축 Tar-Ball

  • 사용 단계


    dockerdocker-compose가 있는 개발 시스템이 있다고 가정합니다.
  • 사용하지 않는 불필요한 이미지는 모두 기계에서 제거하고 이미지만 제거합니다.
    우리의 응용 프로그램이 존재합니다.

  •     docker images -a # check existing images on dev machine
    

    모든 것을 제거하고 필요한 이미지만 가져오려면 다음을 수행하십시오.

        docker rmi $(docker images | awk "NR>0 {print$3}")
    


  • docker pull <image_name>:<tag>를 사용하여 전용 태그가 있는 이미지를 가져옵니다.
  • docker images -a
  • 를 사용하여 확인

  • 이제 다음을 사용하여 일부 형식 구문 분석과 함께 활용docker save:

    docker save -o myStack.tar $(docker images --format {{.Repository}}:{{.Tag}}})
    

  • docker save는 이미지를 각각의 Tar 볼에 결합하지만 개발 시스템에 존재하는 모든 이미지를 결합된 Tar 볼에 결합해야 한다고 알려야 합니다docker. 이것은 --format {{.Repository}}:{{.Tag}}를 통해 수행됩니다.

    이렇게 하면 디렉터리에 myStack.tar가 생성됩니다.

    Tarball의 압축을 풀고 테스트



    랩톱이나 PC에서 이 작업을 수행하는 경우 지금 네트워크 연결을 끄십시오.
  • Tarball 포장 풀기

  •     docker load -i myStack.tar
    


  • docker images -a로 확인
  • 이제 할 수 있으며docker-compose up 애플리케이션이 오프라인으로 작동해야 합니다
  • .

    Docker 및 Compose 애플리케이션을 배송하는 다른 방법을 사용하는 경우 저에게 연락하여 배우고 싶습니다!

    좋은 웹페이지 즐겨찾기