# Docker 컨테이너 사용

Qualcomm Linux는 Docker 컨테이너를 활성화합니다. Docker 컨테이너를 사용하려면 Qualcomm BSP에서 가상화 기능을 활성화했는지 확인하세요. Qualcomm Linux 기기에서 컨테이너를 사용하려면 `meta-virtualization` 계층이 작업 영역의 일부로 활성화되어 있는지 확인하세요.

## Docker

`qcom-multimedia-image` 는 Docker를 활성화합니다.

1. `qcom-multimedia-image` 이미지 레시피의 경우 `meta-qcom-distro/recipes-products/packagegroups/packagegroup-qcom-multimedia.bb` 를 사용하여 `packagegroup-qcom-containers` 를 포함합니다.
2. `packagegroup-qcom-containers` 는 `dynamic-layers/virtualization-layer/recipes-containers/packagegroups/packagegroup-qcom-containers.bb` 의 `meta-qcom-hwe` 계층에 정의됩니다.
3. 이미지가 빌드 및 플래시되면 기기에서 Docker를 사용할 수 있습니다.
4. 커널 호환성을 확인하려면 기기에서 `check-config.sh` 스크립트를 실행합니다.
5. 구성을 확인하려면 필요한 커널 구성을 활성화하고 이미지를 다시 빌드합니다. 자세한 내용은 [커널 호환성](https://docs.docker.com/engine/install/troubleshoot/#:~:text=Kernel%20compatibility,check%2Dconfig.sh%20script.&amp;text=The%20script%20only%20works%20on%20Linux) 을 참조하세요.
6. Docker 데몬의 상태를 확인하려면 다음 명령어를 실행하고 출력을 확인합니다.

    | 명령어 | 설명 | 출력 |
    | --- | --- | --- |
    | `systemctl status docker` | 부팅 후 Docker 명령어가 한 번 이상 실행된 경우 | 활성(실행 중) |
    | `systemctl status docker` | 부팅 후 기기에서 Docker 명령어를 전혀 실행하지 않은 경우 | 비활성(중지) |
    |  |  |  |

Docker 저장소에서 가져온 `linux/arm64` 플랫폼용 이미지로, 기기에서 성공적으로 실행되는지 확인된 이미지는 다음과 같습니다.

> 
> 
> - `busybox`
> - `python`
> - `alpine`
> - `ubuntu`
> - `postgres`
> - `mongo`
> - `nginx`
> - `redis`

다음은 Docker가 활성화된 상태에서 검증된 사용 사례입니다.

- Docker 로드 유틸리티를 사용하여 tar 파일에서 Docker 이미지 로드하기
- Docker 파일에서 Docker 이미지 빌드하기
- 가져오거나 빌드된 Docker 이미지를 `.tar` 파일에 저장하기
- `.tar` 파일로 저장된 Docker 이미지 로드하기
- 가져오거나 빌드된 여러 이미지로 구성된 다수 컨테이너 인스턴스 실행하기
- 기기에 로드된 Docker 이미지 목록 확인하기
- 기기의 활성 컨테이너 및 총 컨테이너 목록 확인하기
- Docker 검사 유틸리티를 사용하여 Docker 이미지 검사하기
- Docker 로그 유틸리티를 사용하여 컨테이너의 로그 가져오기
- Docker 중지 및 Docker 종료 유틸리티를 사용하여 컨테이너 중지 및 종료하기
- 기기에서 컨테이너 및 Docker 이미지 제거하기

## Docker에서 하드웨어 노드 접근

Docker 컨테이너 내부에서 실행되는 애플리케이션은 기기에서 기기 노드와 파일에 접근해야 할 수 있습니다(즉, 기기가 Docker 컨테이너의 호스트인 경우). Docker에서 이 작업을 수행하려면 run 명령어에 옵션으로 해당 기기 노드를 전달합니다.

docker run -it --rm --device=<device-1> --device=<device-2> <docker-image-name>
    Copy to clipboard

기기의 `/dev` 디렉토리에 있는 기기 노드를 전달합니다. 사용 사례(예: 그래픽 시나리오)에 따라 `--device=/dev/kgsl-3d0` 을 사용하여 Docker에 `/dev/kgsl-3d0` 을 전달합니다.

Docker 컨테이너 내부에서 실행되는 애플리케이션도 기기의 스토리지에 접근해야 할 수 있습니다(타겟-호스트). 파일/디렉토리를 바인드 마운트로 노출하려면 다음 명령어를 실행합니다.

docker run -it --rm --mount type=bind,source=<source-path-on-device>,target=<destination-path-inside-container> <docker-image-name>
    Copy to clipboard

다음 명령어를 사용하여 여러 디렉토리, 파일 및 기기 노드를 컨테이너에 노출하는 docker 컨테이너를 실행합니다.

docker run -it --rm --device=<device-1> --device=<device-2> --mount type=bind,source=<source-path-on-device-1>,target=<destination-path-inside-container-1>  --mount type=bind,source=<source-path-on-device-2>,target=<destination-path-inside-container-2> <docker-image-name>
    Copy to clipboard

## Qualcomm Linux 기기에서 Docker Compose 실행

Docker Compose는 멀티컨테이너 애플리케이션을 정의하고 실행하는 도구입니다. 이 도구는 알기 쉬운 단일 YAML 구성 파일에 서비스, 네트워크 및 볼륨을 정의하여 애플리케이션 스택 관리를 간소화합니다. 기본적으로 Qualcomm Linux 릴리스는 `qcom-multimedia-image` 에 Docker Compose를 포함합니다.

`docker-compose` 패키지는 `packagegroup-qcom-containers` 를 통해 `meta-qcom-distro` 메타데이터 계층의 `packagegroup-qcom-multimedia` 패키지 그룹에 추가됩니다.

**기기에서 Docker Compose 실행하기:**

1. 기기에서 `/var` 등 쓰기 가능한 경로(예: `/var/docker-compose-yaml`)에 기기의 Docker Compose에서 사용할 Docker Compose YAML 파일을 만들거나 복사합니다.
2. Docker Compose YAML 파일에 나열된 Docker 이미지가 기기에 있어야 합니다. Docker 이미지가 없다면 기기를 유효한 인터넷 연결에 연결하여 가져와야 합니다.
3. 여러 YAML 파일에 대해 Docker Compose를 실행하려면 다음 명령어를 실행합니다.

docker-compose -f <docker-compose-file-1>.yml -f <docker-compose\u0002file-2>.yml up
        Copy to clipboard

Docker Compose YAML 파일에 구성된 대로 Docker Compose가 실행되고 Docker 컨테이너를 시작합니다. Docker Compose 명령어가 반환된 후 `docker ps -a` 및 `docker logs <conatiner-id>` 를 실행하여 docker 컨테이너가 예상대로 실행되는지 확인합니다.

Docker Compose에 대해 자세히 알아보려면 [Docker Compose 개요](https://docs.docker.com/compose) 를 참조하세요.

Last Published: Dec 23, 2025

[Previous Topic
Qualcomm Linux에서 파티션 관리](https://docs.qualcomm.com/bundle/publicresource/80-70020-27KO/topics/managing_partitions_in_qualcomm_linux.md) [Next Topic
Qualcomm Linux에서 Kubernetes 설정](https://docs.qualcomm.com/bundle/publicresource/80-70020-27KO/topics/setup_kubernetes_with_qualcomm_linux.md)

Source: [https://docs.qualcomm.com/doc/80-70020-27KO/topic/use_of_docker_containers.html](https://docs.qualcomm.com/doc/80-70020-27KO/topic/use_of_docker_containers.html)