Getting Started with Docker

Docker Image를 통해 OvenMediaEngine Enterprise를 시작하려면 아래 설치 방법을 따라 진행하십시오.

설치 방법

설치 경로

OvenMediaEngine Enterprise는 Docker Container 안의 다음 경로에 설치되어 있습니다.

Type
Path / Description

OvenMediaEngine

/opt/ovenmediaengine/bin

Web Console (OvenStudio)

/opt/ovenmediaengine/ovenstudio

Record Delivery

/opt/ovenmediaengine/delivery

Logs

/var/log/ovenmediaengine

Registry 로그인

OvenMediaEngine Enterprise Docekr Image를 설치 하기 전, Container Registry에 먼저 로그인을 해야 합니다. 로그인 시 유효한 License Key가 필요하며 최초 설치 시 한번만 수행하면 됩니다.

VALID_LICENSE_KEY="Your.License.Key"

docker login packages.buildkite.com/ovenmediaengine/docker -u buildkite -p $VALID_LICENSE_KEY

패키지 설치

다음 명령어를 통해 최신 버전을 설치 할 수 있습니다.

docker pull packages.buildkite.com/ovenmediaengine/docker/ovenmediaengine-enterprise
docker tag packages.buildkite.com/ovenmediaengine/docker/ovenmediaengine-enterprise ovenmediaengine-enterprise

Docker CLI로 실행하기

설치가 완료 된 후 다음 명령어를 통해 OvenMediaEngine Enterprise를 실행 할 수 있습니다.

docker run -d --name=ovenmediaengine \
-e OME_LICENSE_KEY=<Your.License.Key> \
-e OME_HOST_IP=<Your.HOST.IP.Address> \
-p 1935:1935 -p 8080:8080 -p 9999:9999/udp -p 9000:9000 -p 3333:3333 -p 3478:3478 -p 10000-10009:10000-10009/udp \
ovenmediaengine-enterprise

OvenMediaEngine Enterprise 실행 시 다음 두 가지 환경 변수를 설정 해야 합니다.

  • OME_LICENSE_KEY: 유효하지 않은 License Key를 입력 시 컨테이너는 실행 되지 않습니다.

  • OME_HOST_IP: 호스트 서버의 IP 설정을 통해 스트리밍 및 Web Console을 원활하게 사용 할 수 있습니다.

컨테이너 중지 및 삭제하기

docker ps
CONTAINER ID   IMAGE                        COMMAND                  CREATED         STATUS         PORTS                                                                                                                                                                                                                                                                                                                                                                  NAMES
2269946c053e   ovenmediaengine-enterprise   "/opt/ovenmediaengin…"   5 minutes ago   Up 5 minutes   0.0.0.0:1935->1935/tcp, [::]:1935->1935/tcp, 80/tcp, 0.0.0.0:3333->3333/tcp, [::]:3333->3333/tcp, 3334/tcp, 0.0.0.0:3478->3478/tcp, [::]:3478->3478/tcp, 5000/tcp, 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp, 4000-4005/udp, 8090/tcp, 0.0.0.0:9000->9000/tcp, [::]:9000->9000/tcp, 10010/udp, 0.0.0.0:9999-10009->9999-10009/udp, [::]:9999-10009->9999-10009/udp   ovenmediaengine

docker stop ovenmediaengine
docker rm ovenmediaengine

설정 및 데이터 유지하기

실행 중인 Container 내의 설정을 변경하거나 기록 중인 Log는 Container가 중지되고 제거 될 때 모든 변경 사항이 삭제됩니다. Bind mounts를 사용해 Contaienr 내부의 설정 및 데이터를 영구적으로 유지 할 수 있습니다.

Host Directory 생성하기

export OME_DOCKER_HOME=/opt/ovenmediaengine
sudo mkdir -p $OME_DOCKER_HOME/conf
sudo mkdir -p $OME_DOCKER_HOME/logs
sudo mkdir -p $OME_DOCKER_HOME/ovenstudio/data
sudo mkdir -p $OME_DOCKER_HOME/delivery/conf

# 필요한 경우 생성 된 디렉토리에 대한 권한을 설정합니다
sudo chgrp -R docker $OME_DOCKER_HOME
sudo chmod -R 775 $OME_DOCKER_HOME

# OME_DOCKER_HOME을 영구적으로 사용하려면 ~/.profile 파일에 다음 행을 추가하세요
echo -e 'export OME_DOCKER_HOME=/opt/ovenmediaengine' >> ~/.profile
source ~/.profile

Container 기본 설정 파일 복사하기

Docker Container를 실행 한 후 다음 명령어를 통해 OvenMediaEngine Enterprise의 기본 설정을 복사합니다.

# OvenMediaEngine files
docker cp ovenmediaengine:/opt/ovenmediaengine/bin/origin_conf $OME_DOCKER_HOME/

# Web Console(OvenStudio) files
docker cp ovenmediaengine:/opt/ovenmediaengine/ovenstudio/system.env $OME_DOCKER_HOME/ovenstudio/
docker cp ovenmediaengine:/opt/ovenmediaengine/ovenstudio/data $OME_DOCKER_HOME/ovenstudio/

# Delivery files
docker cp ovenmediaengine:/opt/ovenmediaengine/delivery/delivery.db $OME_DOCKER_HOME/delivery/
docker cp ovenmediaengine:/opt/ovenmediaengine/delivery/conf $OME_DOCKER_HOME/delivery/

Bind mounts를 사용하여 실행하기

docker run -d --name=ovenmediaengine \
-e OME_LICENSE_KEY=<Your.License.Key> \
-e OME_HOST_IP=<Your.HOST.IP.Address> \
-v $OME_DOCKER_HOME/origin_conf:/opt/ovenmediaengine/bin/origin_conf \
-v $OME_DOCKER_HOME/logs:/var/log/ovenmediaengine \
-v $OME_DOCKER_HOME/ovenstudio/system.env:/opt/ovenmediaengine/ovenstudio/system.env \
-v $OME_DOCKER_HOME/ovenstudio/data:/opt/ovenmediaengine/ovenstudio/data \
-v $OME_DOCKER_HOME/delivery/delivery.db:/opt/ovenmediaengine/delivery/delivery.db \
-v $OME_DOCKER_HOME/delivery/conf:/opt/ovenmediaengine/delivery/conf \
-p 1935:1935 -p 8080:8080 -p 9999:9999/udp -p 9000:9000 -p 3333:3333 -p 3478:3478 -p 10000-10009:10000-10009/udp \
ovenmediaengine-enterprise

Docker Compose로 실행하기

Container를 쉽게 정의하고 효율적으로 배포하기 위해 Docker Compose를 활용 할 수 있습니다. Docker Compose의 자세한 사용 방법은 여기를 참조하세요.

docker-compose.yaml 파일 생성하기

docker-compose.yaml
services:
  ovenmediaengine:
    image: ovenmediaengine-enterprise
    container_name: ovenmediaengine
    restart: unless-stopped
    environment:
      - OME_LICENSE_KEY=<Your.License.Key>
      - OME_HOST_IP=<Your.HOST.IP.Address>
    ports:
      - 1935:1935
      - 8080:8080
      - 9999:9999/udp
      - 9000:9000
      - 3333:3333
      - 3478:3478
      - 10000-10009:10000-10009/udp

설치가 완료 된 후 다음 명령어를 통해 OvenMediaEngine Enterprise를 실행 할 수 있습니다.

docker compose up -d

[+] Running 2/2
 ✔ Network root_default       Created              0.1s
 ✔ Container ovenmediaengine  Started              0.8s

OvenMediaEngine Enterprise 실행 시 다음 두 가지 환경 변수를 설정 해야 합니다.

  • OME_LICENSE_KEY: 유효하지 않은 License Key를 입력 시 Conatiner는 실행 되지 않습니다.

  • OME_HOST_IP: Host Sever의 IP 설정을 통해 Stream 및 Web Console을 원활하게 사용 할 수 있습니다.

컨테이너 중지 및 삭제하기

docker compose down

[+] Running 2/2
 ✔ Container ovenmediaengine  Removed              1.4s
 ✔ Network root_default       Removed              0.2s

설정 및 데이터 유지하기

실행 중인 Container 내의 설정을 변경하거나 기록 중인 Log는 Container가 중지되고 제거 될 때 모든 변경 사항이 삭제됩니다. Bind mounts를 사용해 Container 내부의 설정 및 데이터를 영구적으로 유지 할 수 있습니다.

Host Direcotry 생성하기

export OME_DOCKER_HOME=/opt/ovenmediaengine
sudo mkdir -p $OME_DOCKER_HOME/conf
sudo mkdir -p $OME_DOCKER_HOME/logs
sudo mkdir -p $OME_DOCKER_HOME/ovenstudio/data
sudo mkdir -p $OME_DOCKER_HOME/delivery/conf

# 필요한 경우 생성 된 디렉토리에 대한 권한을 설정합니다
sudo chgrp -R docker $OME_DOCKER_HOME
sudo chmod -R 775 $OME_DOCKER_HOME

# OME_DOCKER_HOME을 영구적으로 사용하려면 ~/.profile 파일에 다음 행을 추가하세요
echo -e 'export OME_DOCKER_HOME=/opt/ovenmediaengine' >> ~/.profile
source ~/.profile

Container 기본 설정 파일 복사하기

Docker Container를 실행 한 후 다음 명령어를 통해 OvenMediaEngine Enterprise의 기본 설정을 복사합니다.

# OvenMediaEngine files
docker cp ovenmediaengine:/opt/ovenmediaengine/bin/origin_conf $OME_DOCKER_HOME/

# Web Console(OvenStudio) files
docker cp ovenmediaengine:/opt/ovenmediaengine/ovenstudio/system.env $OME_DOCKER_HOME/ovenstudio/
docker cp ovenmediaengine:/opt/ovenmediaengine/ovenstudio/data $OME_DOCKER_HOME/ovenstudio/

# Delivery files
docker cp ovenmediaengine:/opt/ovenmediaengine/delivery/delivery.db $OME_DOCKER_HOME/delivery/
docker cp ovenmediaengine:/opt/ovenmediaengine/delivery/conf $OME_DOCKER_HOME/delivery/

Bind mounts를 사용하여 Docker Compose 실행하기

docker-compose.yaml
services:
  ovenmediaengine:
    image: ovenmediaengine-enterprise
    container_name: ovenmediaengine
    restart: unless-stopped
    environment:
      - OME_LICENSE_KEY=<Your.License.Key>
      - OME_HOST_IP=<Your.HOST.IP.Address>
    ports:
      - 1935:1935
      - 8080:8080
      - 9999:9999/udp
      - 9000:9000
      - 3333:3333
      - 3478:3478
      - 10000-10009:10000-10009/udp
    volumes:
      - $OME_DOCKER_HOME/origin_conf:/opt/ovenmediaengine/bin/origin_conf
      - $OME_DOCKER_HOME/logs:/var/log/ovenmediaengine
      - $OME_DOCKER_HOME/ovenstudio/system.env:/opt/ovenmediaengine/ovenstudio/system.env
      - $OME_DOCKER_HOME/ovenstudio/data:/opt/ovenmediaengine/ovenstudio/data
      - $OME_DOCKER_HOME/delivery/delivery.db:/opt/ovenmediaengine/delivery/delivery.db
      - $OME_DOCKER_HOME/delivery/conf:/opt/ovenmediaengine/delivery/conf
docker compose up -d

[+] Running 2/2
 ✔ Network root_default       Created              0.1s
 ✔ Container ovenmediaengine  Started              0.8s

기본 설정 포트

OvenMediaEngine Enterprise는 기본적으로 아래 나열된 Port를 사용하므로 방화벽 설정이 필요합니다.

OvenMediaEngine

Port
Purpose

1935/TCP

RTMP Input

9999/UDP

SRT Input

4000/UDP

MPEG-2 TS Input

9000/TCP

Origin Server (OVT)

3333/TCP

3334/TLS

Low Latency HLS (LLHLS) Streaming

* Streaming over non-TLS is not allowed with modern browsers.

3333/TCP

3334/TLS

WebRTC Signaling (both ingest and streaming)

3478/TCP

WebRTC TCP relay (TURN Server, both ingest and streaming)

10000 - 10009/UDP

WebRTC Ice candidate (both ingest and streaming)

20080/TCP

20081/TLS

Thumbnail Extraction

Web Console (OvenStudio)

Port
Purpose

8080/TCP

Running Web Console

Last updated