본문 바로가기

따배도 스터디

4-1 도커 컨네이너 만들어보기

728x90

polyglot programming:다양한 언어를 사용하여 프로그래밍 하는 것!

1.컨테이너 어떻게 만들어요 ? DockerFile이 뭐죠 ?

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

 

Dockerfile.txt

예) FROM node:12

     COPY hello.js  /

     CMD ["node","/hello.js"]

 

docker build -t imagename:tag .

 

Dockerfile 문법:

#: 설명 /주석이라고 생각하면 된다

 

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

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

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

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

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

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

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

ENV: 환경변수 지정

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

VOLUME: 파일 또는 디렉토리를 컨테이너의 디렉토리 마운트( DB 등등 )

EXPOSE: 컨테이너 동작 시 외부에서 사용할 포트 지정

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

EXTRYPOINT: CMD와 함꼐 사용하면서 COMMAND 로 지정

 

실제 토이 프로젝트 시 썻었던 간단한 DockerFile

FROM openjdk:11

COPY ./build/libs/devTest-0.0.1-SNAPSHOT.jar application.jar

ENV TZ=Asia/Seoul

EXPOSE 8888

CMD ["java", "-jar", "/application.jar"]

운영환경 jdk 11

copy 아래있는 파일을 application.jar로 만들겠다.

환경 timezone: 아시아 서울

컨테이너 포트 8888로 expose

cmd : 동작 시 자동으로 이 커맨드 실행  java -jar apllication.jar 

 

2.내가 만든 컨테이너를 배포하려면 ??

docker build -t hello js:latest

docker login

docker push hello js:latest 

 

docker push 를 통해 docker hub 에 푸쉬하고 다른사람이 쓸수있게 registry에 저장한다.

직접 가상서버에 접속해서 Container를 백그라운드방식으로 배포하는과정을 아래의 링크에있습니다.

https://minwoo-it-factory.tistory.com/entry/Docker-3-1-%EB%8F%84%EC%BB%A4-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0

 

728x90