[Docker]-실습2

호준·2022년 6월 15일
0

Docker

목록 보기
7/7
post-thumbnail

🧩 무엇을 컨테이너로 만드는가?

  • 개발한 애플리케이션(실행파일)과 운영환경이 모두 들어있는 독립된 공간

  • 개발한 프로그램과 실행관경을 모두 컨테이너로 만들어요

  • MSA(Mircro Swevice Architecture) 환경의 Polyglot 애플리케이션 운영

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

🧩 용어

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

둘이 같이 썼을 때 ENTRTYPOINT(명령어), CMD(argument)

Dockerfile : container를 만들 수 있도록 도와주는 명령어 집합

🧩 실습

🧩1. 컨테이너 만들기

  1. guru라는 사용자에서 hellojs 디렉토리를 만든다.
  2. 실행할 파일 (hello.js) 만든다.

vi dockerfile을 만들고 그 안에 작성한다.

image를 만들기 위해 build를 실행한다.
latest는 default 값으로 생략해도 된다.
.은 현재 디렉토리에 파일이 있다고 표시

위에 vi dockerfile에서 작성한 대로 step에 맞게 진행된다.

실행을 한다.
curl localhost:8080 을 통해서 작성했던 hello.js파일이 작동하는 것을 알 수 있다.

🧩 hub에 docker 올리기

허브에 올리기위해서 로그인을 한다.
(로그인은 hub.docker.com에 들어가면 아이디를 만든다)

로그인 후 올리렸던 docker image 이름을 해당 유저이름/image이름 으로 다시 바꾼다.
(latest는 default 값으로 생략가능하지만 다른 이름으로 지정할 경우 생략하면 안된다.)

이미지를 확인했을 때 생긴것을 확인할 수 있다.

docker push tmhjk/hellojs:latest 를 통해서 hub에 push한다.

해당 계정 Repositories에 만들어진것을 볼 수 있다.

profile
도전하지 않는 사람은 실패도 성공도 없다

0개의 댓글