Skip to content

Latest commit

 

History

History
 
 

Quest16-B

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Quest 16-B. 컨테이너

Introduction

  • 이번 퀘스트에서는 컨테이너 기술과 그 활용에 대해 알아보겠습니다.

Topics

  • 컨테이너 기술
  • Docker
  • docker-compose

Resources

Checklist

  • 컨테이너는 어떻게 동작하나요? 다른 배포판을 사용할 수 있게 하는 원리가 무엇일까요?

동작💡

  1. 컨테이너를 만들기 위해 필요한 이미지를 빌드하고 이미지는 컨테이너를 생성하기 위해 필요한 모든 파일, 설정, 실행 파일 등이 포함된 패키지이며, 이미지는 도커 등의 컨테이너 플랫폼에서 제공하는 빌드 도구를 사용해 생성합니다.
  1. 이미지를 사용하여 컨테이너를 실행하는 과정을 거치며, 컨테이너는 이미지를 기반으로 생성한 뒤 호스트 운영체제에서 격리된 공간에서 실행합니다. 컨테이너는 실행되면서 필요한 자원을 호스트 운영체제에서 가져와 사용하고, 실행 결과를 호스트 운영체제에 반환합니다.

다른 배포판 사용💡

컨테이너화된 애플리케이션을 배포하기 위해서는, 도커와 같은 컨테이너 관리 도구를 이용합니다. 이를 이용하면 컨테이너를 빠르게 생성하고 배포할 수 있으며, 다른 배포판을 사용하더라도 동일한 애플리케이션을 실행할 수 있습니다.


  • 도커 컨테이너에 호스트의 파일시스템이나 네트워크 포트를 연결하려면 어떻게 해야 할까요?

호스트의 파일시스템을 컨테이너에 연결하려면 -v 옵션을 사용합니다.

 $ docker run -v [연결하고 싶은 디렉토리 명 및 경로] : [컨테이너의 디렉토리] [도커 image 명]

호스트의 네트워크 포트를 컨테이너에 연결하려면 -p 옵션을 사용합니다.

$ docker run -p [호스트 포트 번호] : [컨테이너 포트 번호] [도커 image 명]

  • 도커 컨테이너에서 런타임에 환경변수를 주입하려면 어떻게 해야 할까요?

환경변수 주입💡

$ docker run -e [환경 변수] = [설정 값] [도커 image 명]

여러개의 환경 변수 주입💡

  1. env.list 파일 수정
[환경 변수]=[설정 값]
[여러개의 환경 변수]=[여러개의 설정 값]

#ex
MY_ENV_VAR=my-value
ANOTHER_ENV_VAR=another-value

  1. 도커 실행
$ docker run --env-file ./env.list [도커 이미지 명]


  • 도커 컨테이너의 stdout 로그를 보려면 어떻게 해야 할까요?
  1. 도커 CLI를 이용하는 방법
$ docker logs [OPTIONS] CONTAINER

실시간 모니터링이 필요 할때 💡

$ docker logs -f [컨테이너명]
  1. 도커 컨테이너 내부에서 로그를 출력하는 방법
$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

  • 실행중인 도커 컨테이너에 들어가 bash 등의 쉘을 실행하고 로그 등을 보려면 어떻게 해야 할까요?
$ docker exec -it [컨테이너 명] [실행할 명령어]


Quest

  • 도커를 설치하고 그 사용법을 익혀 보세요.
  • 메모장 시스템 서버를 컨테이너 기반으로 띄울 수 있게 수정해 보세요. (docker-compose는 사용하지 않습니다)
  • 컨테이너를 Docker Hub에 올리고, 발급받은 학습용 AWS 계정에 EC2 인스턴스를 생성한 뒤, 해당 컨테이너를 띄워서 서비스 해 보세요.
  • docker-compose를 사용하여, 이미지 빌드와 서버 업/다운을 쉽게 할 수 있도록 고쳐 보세요.

Advanced

  • 도커 외의 컨테이너 기술의 대안은 어떤 것이 있을까요?
  • 맥이나 윈도우에서도 컨테이너 기술을 사용할 수 있는 원리는 무엇일까요?