We will find a way, we always have.

-interstellar

DevOps/도커

[도커] 데이터의 종류

Redddy 2022. 8. 26. 02:14

Data?!!

데이터의 종류는 크게 세가지로 나눌 수 있다.

 

  1. Application
  2. Temporary App Data
  3. Permanent App Data

 

1번째 Application은 코드나 환경을 의미한다. 개발자가 작성한 코드, 이미지, 빌드한 컨테이너가 여기에 포함되고 이것들은 Read-Only 상태로 이미지에 저장된다.

 

2번은 임시적인 데이터인데 인풋 박스에 사용자가 입력중인 데이터가 여기에 포함된다. 이 데이터는 읽고 쓰기가 가능하다. 컨테이너에 저장된다.

 

마지막 3번째는 영구적인 데이터인데 사용자의 계정같은 데이터가 여기에 속한다. 읽고 쓰기가 가능하고 영구적이며 컨테이너와 볼륨에 저장된다.

 

도커

 

위와 같은 도커 파일을 생성하고 (도커 파일 제외한 소스코드는 강의에서 제공되었음)

터미널에 다음과 같이 입력하였다.

docker build -t feedback-node .
# 이제 쭈루룩 설치가 시작된다.

docker run -p 3000:80 -d --name feedback-app --rm feedback-node
# 다 배웠던거다. 포트 설정 디때치모드 이름 설정 실행후 삭제 등

 

참고로 docker build -t feedback-node . 를 터미널에서 실행시켰을 때

failed to solve with frontend dockerfile.v0: failed to create LLB definition: the Dockerfile

이런 에러가 발생하였는데 이유는 도커 파일 코드를 작성하고 저장을 안해서였다..ㅎ

파이썬 할 때는 디버그 할 때 자동으로 저장되어서 아직 저장 습관이 손에 베질 않았나보다.

 

위와 같이 도커화 진행하면 이제 로컬호스트에서 다음과 같은 폼을 볼 수 있다.

localhost

title에 영문을 입력하고 document text에 문자를 입력한 후 save 버튼을 누르면 이제 localhost:3000/feedback/[title].txt에서 document text를 확인 할 수 있다.

 

신기방기

 

또한 같은 제목의 파일을 저장하면 다음과 같이 처리된다.

 

이렇게 저장시킨 텍스트를 호스팅 머신의 feedback 폴더에서 텍스트 파일을 찾을 수 있는것은 아니다. 컨테이너나 이미지와 로컬 파일 시스템 간에는 연결되어 있니 않는다. 이미지를 초기화 할 때 로컬 폴더와 파일의 스탭샷을 복사할 수는 있지만 그걸로 끝이다.

 

앞서 도커 run할 때 --rm 를 추가하여 이미지가 제거되면 컨테이너도 자동 종료되게 하였기에, 도커 종료 후 다시 실행시켰을 때는 이전에 추가했던 텍스트들도 로컬 호스트에서 볼 수 없었다.

--rm 를 추가하지 않고 도커를 실행시키고, 종료한다면 다시 실행 시켰을 때 이전에 저장했던 텍스트를 확인 할 수 있다.

'DevOps > 도커' 카테고리의 다른 글

[도커] 바인드 마운트(Bind Mounts)  (0) 2022.09.02
[도커] 볼륨  (0) 2022.09.02
[도커] 파일 복사와 이름 지정  (0) 2022.08.19
[도커] 이미지 검사  (0) 2022.08.17
[도커] 이미지 & 컨테이너 삭제  (0) 2022.08.12