rueki

도커 컨테이너 만들어보기 본문

쿠버네티스, 도커

도커 컨테이너 만들어보기

륵기 2021. 11. 17. 00:53
728x90
반응형

예제로 node.js 를 실행할 수 있는 컨테이너를 dockerfile을 통해서 만들어보려고 한다.

 

- hello.js 파일

const http = require('http');
const os =require('os')
console.log("Test server starting...")

var handler = function(request, response)
{
    console.log("Received request from" + request.connection.remoteAddress);
    response.writeHead(200);
    response.end("container hostname : " + os.hostname() + "\n");

};

var www = http.createServer(handler);
www.listen(8080);

 

- dockerfile

FROM node:12 
COPY hello.js /
CMD ["node", "/hello.js"]

FROM : 컨테이너의 기본 이미지 환경(OS)

COPY : 컨테이너 빌드시 호스트 파일을 컨테이너로 복사

-> 위의 파일에서는 hello.js를 컨테이너 최상위 경로에 복사를 한것이다.

CMD : 컨테이너 동작 시 자동으로 실행할 서비스 및 스크립트 지정

-> 컨테이너를 동작하면 node와 복사한 hello.js파일이 실행될 것임

 

그 외의 중요 명령어

RUN : 컨테이너 빌드를 위해 base image에서 실행할 commands

ADD : 컨테이너 빌드시 호스트의 파일을 컨테이너로 복사 (tar, url 포함)

WORKDIR : 명령이 실행될 작업 디렉터리 설정

ENV : 환경변수 지정

USER : 명령 및 컨테이너 실행시 적용할 유저 설정

 

파이토치 도커파일 예제

FROM pytorch/pytorch:1.2-cuda10.0-cudnn7-devel
MAINTAINER wk
RUN apt-get -y -qq update && \
    pip install numpy matplotlib librosa

FROM에는 pytorch 1.2를 포함한 쿠다 버전 등의 이미지를 사용할 것을 명시함

MAINTAINER는 이미지를 생성한 사람의 이름 및 정보를 나타낸다.

RUN에서는 위에서 언급했듯이, 기본 이미지에서 실행할 커맨드인데 컨테이너를 생성함과 동시에 해당 명령어들이 실행되어 라이브러리들이 설치 될 것이다.

 

- 도커파일을 이용해 만든 컨테이너를 build 해보기

컨테이너를 만들기 위해서 도커파일을 만들었으니 이를 실행해볼 것이다.

docker build -t hellojs:latest .

기본 명령어는 docker build 이다.

-t 옵션은 tag를 의미하는데 hellojs:latest는 결국 컨테이너 이름과 이것의 tag를 말하는 것이다. (컨테이너 이름 : 태그)

여기서 중요한 것은 제일 끝에 '.'을 붙였는데 이것은 해당 디렉토리 안의 경로를 기반으로 하겠다라는 의미이다.

현재 경로안에 도커파일과 hello.js가 있으니 위에서 작성한 도커파일이 제대로 동작할 것이다.

ex) docker_Example(폴더) - hello.js

                                  - dockerfile

 

 

 

다음에는 연습삼아서 딥러닝 환경 컨테이너를 도커파일을 통해서 만들어보는 것을 해봐야겠다.

728x90
반응형

'쿠버네티스, 도커' 카테고리의 다른 글

도커 컨테이너 실행, 관리 명령어  (0) 2021.11.17
Docker repository 운영하기  (0) 2021.11.17
도커 컨테이너 살펴보기  (0) 2021.11.16
Docker image 명령어  (0) 2021.09.27
Putty로 AWS EC2 접속하기(Windows)  (0) 2021.09.23
Comments