티스토리 뷰

728x90

무엇을 컨테이너로 만들까?

하나를 어플리케이션이 있다고 생각한다면, 어플리케이션을 운영하기 위한 환경이 필요하다. 예를 들어 java로 만들어진 프로그램이 데이터베이스로 mysql을 사용한다면, 운영환경엔 java와 mysql이 설치 되어 있어야 할 것이다. 개발한 어플리케이션과 운영환경이 모두 들어있는 독립된 공간이 컨테이너이다.

예를 들어서 MSA환경의 polyglot 어플리케이션 운용하는 경우 쇼핑카트기능, 결제기능을 다른 환경에서 개발이 되어 있다면, 쇼핑카트기능을 하나의 컨테이너로, 결제기능을 또 하나의 컨테이너로 만든다. ✨


컨테이너 만드는 방법

dockerfile ( 컨테이너를 구성하기 위한 명령어의 집합체 )을 통해 컨테이너를 빌드한다.명렁어들이 많기 때문에..필요한건 아래 홈페이지에서 검색을 하여 사용하면 될 것 같다😅

https://docs.docker.com/engine/reference/builder/

 

Dockerfile reference

 

docs.docker.com

자주 쓰는 명령어 몇개를 소개하겠다(대소문자를 구분하지 않음. 보통 가독성을 위해 대문자로 사용)

# 주석
FROM 컨테이너의 운영환경
MAINTAINER 이미지를 생성한 사람의 이름 및 정보
LABEL 컨테이너 이미지에 컨테이너 정보를 저장
RUN 컨테이너 빌드를 위해 base image에 실행 할 명령어들
COPY 컨테이너 빌드시 호스트의 파일을 컨테이너로 복사
ADD 컨테이너 빌드 시 호트트의 파일(tar, url)을 컨테이너로 복사
WORKDIR 컨테이너 빌드시 명령이 실행 될 작업 디렉터리 설정
ENV 환경변수지정
USER 명령 및 컨테이너 실행 시 적용할 유저 설정
VOLUME 파일 또는 디렉토리를 컨테이너의 디렉토리로 마운트
EXPOSE 컨테이너 동작 시 외부에서 사용할 포트 지정
CMD 컨테이너 동작시 자동으로 실행할 서비스나 스크립트 지정
ENTRYPOINT CMD와 함께 사용하면서 명령어 지정 시 사용

helloDocker.js라는 스크립트를 만들고, node.js를 사용해 실행 시키려고 한다.

console.log("hello docker! It's my first docker build")

1️⃣ 프로젝트 경로로 이동하여 dockerfile 만들기

$ vi dockerfile

FROM node:12 #base image -> 내가 만든 js파일을 해석해서 실행시켜줄
COPY helloDocker.js / #helloDocker.js를 컨테이너 최상위디렉토리에 복사. copy 대신 add사용 가능
CMD ["node", "/helloDocker.js"] #컨테이너 실행 시킬 시 자동으로 실행 됨

2️⃣빌드하기

  -t 옵션은 tag 옵션인데 소문자로만 사용 가능

  .은 현재 위치에 빌드 (현재 위치와 빌드할 위치가 다르다면 위치를 명시해줄 것)

$ docker build -t hellodocker:v1 .

3️⃣빌드 된 컨테이너 확인 

$ docker images

4️⃣컨테이너 실행

$ docker run hellodocker:v1


컨테이너 배포하기

컨테이너를 배포하기 위해서는 tag에 계정 이름이 포함되어있어야 한다. 그런데 tag를 그냥 hellodocker로 만들었기 때문에 우선 태그를 수정해준다.

 

태그명 수정

$ docker tag hellodocker:v1 이름/hellodocker:v1

컨테이너 push!

$ docker push ijcheon/hellodocker:v1

이렇게 하면 배포가 완료 된 것인데, docker search 명령어를 통해 실제로 배포 돼었는지 확인 할 수 있다.

 

배포확인

$ docker search 컨테이너명

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   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
글 보관함