본문 바로가기

Data Centric Network

Docker로 NFD 사용

# Docker로 NFD 사용

Docker로 NFD 사용

Docker는 Linux 컨테이너 (LXC)와 같은 운영 체제 수준의 가상화 솔루션 입니다. 이를 통해 VM과 마찬가지로 응용 프로그램 프로세스를 단독으로 실행할 수 있지만 기존 VM의 오버헤드없이 수행 할 수 있습니다. (예 : 운영 체제 부팅 프로세스가 필요 없음) 자세한 내용은 https://www.docker.com/ 을 참조하십시오.

1 단계 : Docker 설치

설치는 https://docs.docker.com/installation/ 을 참조하십시오. Docker는 기본적으로 Linux 커널에서 실행되고 Windows 및 OS X에서는 VM을 통해 실행할 수 있습니다.

2 단계 : Dockerfile 저장

새 디렉토리를 만들고 Dockerfile 이라는 파일에 다음을 입력하십시오.

# This is based on the instructions from:
# http://named-data.net/doc/NFD/0.2.0/INSTALL.html#install-nfd-using-the-ndn-ppa-repository-on-ubuntu-linux

FROM ubuntu:14.04

RUN apt-get update
RUN apt-get install -y software-properties-common

RUN add-apt-repository -y ppa:named-data/ppa
RUN apt-get update
RUN apt-get install -y nfd

Syntax는 http://docs.docker.com/reference/builder/ 에 설명되어 있습니다.

3 단계 : 이미지 빌드

터미널을 열고 위에서 만든 새 디렉토리로 변경 한 후 다음 명령을 실행하여 named_data/nfd 라는 이미지를 만듭니다.

docker build -t named_data/nfd .

이는 소스 코드(Dockerfile)를 실행 가능 코드 (Docker 이미지)로 변환하는 컴파일 입니다.

4 단계 : 이미지에서 셸 실행

Docker 컨테이너 생성 프로세스를 시작하려면 docker run 명령을 사용합니다. 처음에는 Docker 컨테이너를 탐색하여야 하기 때문에 Bash 프로세스를 시작합니다. ( --rm은 나중에 컨테이너를 제거합니다)

docker run --rm -ti named_data/nfd /bin/bash

docker run 명령에 대한 전체 도큐먼트는 https://docs.docker.com/reference/run/ 에서 찾아 볼 수 있으며 전체 command-line 레퍼런스는 https://docs.docker.com/reference/commandline/cli/ 에서 찾을 수 있습니다.

다음 단계

Docker 튜토리얼 (https://www.docker.com/tryit/) 및 도큐먼트 (https://docs.docker.com/)가 있습니다. docker help [command]도 유용합니다. Docker는 NFD와 같이 한 번에 하나의 프로세스만 실행하는 경우 가장 잘 작동합니다. 이미지를 줄이려면 Debian (90 MB) 또는 Busybox (2.5 MB)를 우분투 (225 MB) 대신 기본 이미지로 사용하는 것이 좋습니다. (현재 이러한 기본 이미지는 Named Data 프로젝트에서 지원/테스트하지 않으므로이 기본 이미지에 대한 지침이 없습니다.)

Docker 명령 줄 요약

가장 일반적으로 사용되는 docker Command와 argument를 나열합니다.

Commands

  • docker build
    • Dockerfile에서 이미지 만들기 (docker build -t imageName directory)
  • docker run
    • 새 컨테이너에서 명령 실행 (docker run --rm -ti ubuntu:14.04)

docker run arguments: general

*로 표시된 argument는 Dockerfile에 정의 될 수도 있습니다.

  • -d
    • 백그라운드에서 실행 (docker ps/logs/stop/kill)
  • -i
    • STDIN Open (Bash의 경우 -t와 함께 사용)
  • --name containerName
    • 컨테이너에 이름을 부여 (--link--volume-from)
  • --rm
    • 컨테이너가 종료 후 제거
  • -t
    • pseudo-TTY 할당 (Bash는-i와 함께)

docker run arguments: networking

  • --expose port
    • --link와 함께 사용할 포트를 노출
  • --link otherContainer:alias
    • 다른 컨테이너의 노출 된 포트에 연결 (env. vars 설정)
  • -p hostPort:containerPort
    • 호스트에 TCP 포트 게시

docker run arguments: filesystem

  • -v /containerPath
    • 내용없이 마운트 포인트를 사용 가능 (--volumes-from의 경우)
  • -v /hostPath:/containerPath
    • 호스트 경로를 볼륨에 마운트 (--volumes-from의 마운트 지점)
  • --volumes-from name
    • 다른 컨테이너에서 볼륨 마운트