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
)
- Dockerfile에서 이미지 만들기 (
-
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
와 함께 사용)
- STDIN Open (Bash의 경우
-
--name containerName
- 컨테이너에 이름을 부여 (
--link
와--volume-from
)
- 컨테이너에 이름을 부여 (
-
--rm
- 컨테이너가 종료 후 제거
-
-t
- pseudo-TTY 할당 (Bash는
-i
와 함께)
- pseudo-TTY 할당 (Bash는
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
- 다른 컨테이너에서 볼륨 마운트
'Data Centric Network' 카테고리의 다른 글
Fog Computing and the Internet of Things: Extend the Cloud to Where the Things Are (0) | 2018.08.29 |
---|---|
whitepaper-fog-vs-edge_nebbiolo-technologies (0) | 2018.08.29 |