Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

클라우드 엔지니어 꿈나무

따배도 도커 컨테이너 만들기 본문

container

따배도 도커 컨테이너 만들기

새싹싹이 2023. 10. 17. 18:25

docker file

쉽고, 간단, 명확한 구문을 가진 text file로 TOP DOWN 해석

컨테이너 이미지를 생성할 수 있는 고유의 지시어를 가짐

대소문자 구분하지 않으나 가독성을 위하여 사용함

 

DOCKER 문법

# : comment

FROM : 컨테이너의 BASE IMAGE (운영 환경)

MAINTAINER : 이미지를 생성한 사람의 이름 및 정보

LABEL : 컨테이너 이미지에 컨테이너의 정보를 저장

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

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

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

WORKDIR : 컨테이너 빌드 시, 명령이 실행될 작업 디렉터리 설정

ENV : 컨테이너 내 환경변수 지정

USER : 명령 및 컨테이너 실행 시, 적용할 유저 설정 (보완점 관점과 관련)

VOLUME  : 파일 또는 디렉토리를 컨테이너의 디렉토리로 마운트, 컨테이너가 동작될 때 실행

EXPOSE : port 알려줄 떄, 컨테이너 동작 시 외부에서 사용할 포트 지정

CMD : 컨테이너 동작 시, 자동으로 동작해야 하는 명령어 (컨테이너 러닝할 때 명령어 변경 가능), argument, option 들어감

ENTRYPOINT : CMD와 함께 사용하면서 command 지정 시, 사용(컨테이너 러닝할 때 변경 불가) 반드시 명령어

 

$ mkdir build

$ cd build

$ vi 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);

$ vi dockerfile

FROM node:12
COPY hello.js #add 로 해도 된다
CMD ["node","/hello.js"]

$ docker build -t hellojs:latest . (. 필수 현재 디렉토리)

$ docker login

$ docker push hellojs.latest

 

<<참고>>

https://youtu.be/9qnD8aODu-4?si=FQV5liSzw1L08d_d