인프런 커뮤니티 질문&답변

강우석님의 프로필 이미지
강우석

작성한 질문수

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]

docker 주요 명령 익히기3 (컨테이너를 다루는 다양한 옵션)

Container, Images 개념 관련. Container 생성 관련

작성

·

153

0

현재 docker 주요 명령 익히기3 ( 컨테이너를 다루는 다양한 옵션) 듣고 있습니다. 강의 4분 40초 부분.

1.

해당 부분에서 docer run -it ubuntu (이미지명으로 보임)

으로 컨테이너에 접속하게 됩니다. 

이 때 컨테이너 명을 치는게 자연스러워 보이는데, 왜 이미지 명을 치게 되는 건가요? 강의를 보면 docker  ps -a 의 결과로 'ubuntu image' 를 통해서 생성된 컨테이너가 두개 있는데, 각각 container_name 은 (myubuntu, festive_sinoussi) 로 보입니다. 위에 문의드리는 명령문에 왜 myubuntu, festive_sinoussi 를 넣지 않고 이미지명을 넣는건지 궁금합니다! 그리고 동일한 이미지로 두 개의 컨테이너가 생성된 상태인데, 어떤 컨테이너로 접속하는 건지 궁금합니다. 



2. 

Docker / Container 인프라를 사용할시  구글링해서 나오는 그림을 확인해보면,  아키텍쳐 그림이 

 

컨테이너1.. 컨테이너2.. 

Docker

OS

Hardware

 

이런 구조로 보입니다. 이 때 OS 자체는 하나이고, 도커라는 Layer 를 통해서 Image 로 필요한 환경의 컨테이너들을 만드는 것으로 보입니다. 해당 강의 부분에서 (4분 40초) "접속" 하시는 곳은 해당 컨테이너의 ubuntu 로 보입니다. 하지만 컨테이너 내부에는 OS가 없는데, 어디에 접속하는 건지 궁금합니다! 가령, 해당 컨테이너는 '우분투 imgae'를 통해서 만들어져 우분투로 접속 할 수 있는건가 싶은 생각이 드는데, 만약 우분투 컨테이너가 아니라 python, java 등 환경을 위한 컨테이너면 어떻게 접속하게 되는지 궁금합니다. 

 

전체적으로 Container / Docker 란 개념이 모호해서 발생하는 질문들로 보입니다. 도움 주시면 감사할 것 같습니다. 

 

 

 

답변 1

0

안녕하세요.

1번에 대해서는 docker run 명령은 명령 자체가 이미지를 컨테이너로 실행하는 명령이예요. 그래서 이미지명이 들어가는 것이라고 보시면 좋을 것 같습니다.

docker run <d이미지> 

 

2번에 대해서는 솔직히 질문이 정확하게 제가 이해를 하는 것인지 잘 모르겠어요.

docker 라는 것이 container 라는 환경을 구성하는 것이고, 그 container 에 여러 layer 로 필요한 이미지(프로그램/파일등)들이 쌓여서, 동작하는 구조인데요. 그 container 라는 환경이 결국 os 의 역할을 하는 것이고요. 그 내부에 ubuntu 패키지가 설치되어서, ubuntu 처럼 동작을 하는 것이거든요. 그 내부에 ubuntu 가 아니라, python, java 를 위한 환경이라 하더라도, 해당 기능은 프로그래밍 언어일 뿐이니까요. container 내부에서 터미널등을 지원하려면 ubuntu 는 아니더라도, 가벼운 시스템 패키지들이 들어가 있는 것이 일반적이라고 보시면 좋을 것 같습니다. 접속? 이라는 것은 이런 시스템 패키지들이 지원을 해주는 것이라고 보시면 좋을 것 같아요. 터미널이라는 것을 지원하는 시스템 패키지들이 있고, ubuntu 등에서도 이런 패키지를 기본적으로 제공하고 있거든요.

 

감사합니다.

강우석님의 프로필 이미지
강우석

작성한 질문수

질문하기