개요

나스 디렉토리로 프로젝트 빌드 및 도커 실행 관련 정리.

 

1. 현재 나스 디렉토리 생성경로 파악.

현재 나스 디렉토리 생성 경로 (build 파일은 webDEV 로 옮김)

  • 파일은 GUI 환경으로 옮길 수 있지만 SCP 나 webDEV 를 통해서도 옮길 수 있다.

 

2. 나스 ssh 접속 이후 해당 파일 위치 경로 확인.

 

3. 도커 이미지 빌드

jar 파일을 통해 도커 이미지 만드는 과정.

  • docker build -t {jar file} . (맨 마지막에 온점)
  • 처음에 20200307-022011.jar 파일이 있을때 ADD 명령어에서 문제가 발생했기 때문에 해당 내용 정리가 필요. 그래서 jar 파일 단일로만 있을때는 문제없이 실행됨을 확인해서 일단 지우기 수행했다.

(수정 2020-04-15)

  • docker build --tag {image-name}:{image-tag}
    - 도커 이미지 빌드시, 이미지 이름 및 태그를 설정해서 빌드시킬 수 있다.
  • docker build --tag {image-name}:{image-tag} --build-arg {arg_name}={arg_value}
    - 도커 이미지 빌드시, Dockerfile 에 설정된 ARG 변수에 해당하는 값을 삽입해줄 수 있다.

 

3.5 도커 이미지 조회

2분전에 생긴 따끈따끈한 도커 이미지 파일.

  • docker images : 도커 이미지 조회 명령어
  • IMAGE ID : 이미지를 가리키는 고유한 해시 값
  • CREATED : 이미지가 생성된 시간
  • SIZE : 이미지의 용량

 

4. 나스 내 도커 플러그인에서 이미지 조회 가능

 

5. 도커 이미지, 컨테이너화 및 실행.

  • docker run -p {sour-port}:{dest-port} {image-name}:{tag-name}
    • -p 옵션을 통해서 포트를 지정한다.
    • {sour-port} 는 컨테이너 외부 공개 포트이고 {dest-port} 는 컨테이너 포트이다.
    • image-name 과 tag-name 은 도커 이미지 조회(docker images) 했을 때, 나온 정보를 통해 작성한다.
  • docker run --name={image name}
    • --name 옵션을 통해서 이미지 이름을 지정한다.

 

6. env 분리 (dev | staging | prod)

  • 현재 프로젝트는 vue + spring boot 환경으로 구성
    • dev : vue + spring boot
    • staging : springboot(+vue bundle file)
    • prod : nas 올라간 상태의 staging (도메인 유)
  • yml 파일이랑 env.{development | staging | prod} 환경 변경해줌.
#################################################################
# 스프링부트 + 뷰 개발환경
#################################################################

ENV = 'development'

VUE_APP_BASE_PATH = 'http://localhost:8080'

VUE_APP_BASE_API = /api

#################################################################
# 빌드 이후 통합환경 ( 스프링부트 + 뷰 )
# - 명시적으로 NODE_ENV 붙여줌
# - 해당 내용이 없으면 staging 으로 빌드시 번들링 된 파일이 생성 안됌.
#################################################################
NODE_ENV = production

ENV = 'staging'

VUE_APP_BASE_PATH = 'http://localhost:8080'

VUE_APP_BASE_API = /api

 

+) 도커 개념정리

이미지 (Image)

어느 애플리케이션을 실행하기 위한 환경이다. 그리고 이 환경은 파일들의 집합이다. 도커에서는 애플리케이션을 실행하기 위한 파일들을 모아놓고 애플리케이션과 함께 이미지로 만들 수 있다. 또한 이 이미지를 기반으로 애플리케이션을 바로 배포할 수 있다.

 

이미지의 이름은 콜론(:) 을 구분자로 {이미지 이름}:{태그} 로 구분한다. 태그를 지정하지 않으면 기본적으로 latest 로 설정된다. 

 

도커허브 (Docker Hub)

이미지 호스팅 서비스이다. 도커허브에서는 아주 많은 이미지들이 등록되어 있다. 이 이미지들은 도커사에서 공식적으로 제공하는 이미지와 사용자들이 직접 만들어 올린 이미지들로 나뉘어진다.

 

컨테이너 : 격리된 환경에서 실행되는 프로세스

이미지의 환경 위에서 특정한 프로세스를 격리시켜 실행한 것을 컨테이너라고 부른다. 컨테이너를 실행시키려면 반드시 이미지가 있어야 한다. 

 

이미지는 파일들의 집합이고, 컨테이너는 이 파일들의 집합 위에서 실행된 특별한 프로세스

 

컨테이너는 docker run 을 통해 실행할 수 있다.

 

Dockerfile 로 이미지 만들기.

도커 이미지를 추가하는 방법은 크게 세가지로 나뉘어진다.

  1. pull 을 사용하여 미리 만들어져있는 이미지를 가져오는 방법
  2. 컨테이너의 변경사항으로부터 이미지를 만드는 방법
  3. Dockerfile 을 빌드하는 방법

Dockerfile 은 도커만의 특별한 DSL 로 이미지를 정의하는 파일이다.
(+애플리케이션 실행을 위해 도커 이미지를 만드는 작업을 도커라이징이라고도 한다.)

 

도커 이미지로 서버 애플리케이션 배포하기

어느 애플리케이션을 서버에서 운영하려면 프로비저닝 과정을 거쳐야 한다. 프로비저닝은 서버의 환경을 어떤 애플리케이션이 실행가능한 상태로 준비하는 과정을 의미한다.

 

(생략)

 

참고링크

Posted by doubler
,