rueki
도커 컨테이너 만들어보기 본문
예제로 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
다음에는 연습삼아서 딥러닝 환경 컨테이너를 도커파일을 통해서 만들어보는 것을 해봐야겠다.
'쿠버네티스, 도커' 카테고리의 다른 글
도커 컨테이너 실행, 관리 명령어 (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 |