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

gyuyoung park님의 프로필 이미지

작성한 질문수

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

실행 중인 컨테이너에서 터미널 생활 즐기기

안녕하세요. 도커 컨테이너에 대해서 질문이 있습니다.

작성

·

312

0

안녕하세요.

이미지와 컨테이너에 대해서 궁금한 점이 있습니다.

1. 도커 컨테이너는 VM처럼 각각이 OS를 가지고 있지않다고 이해했었습니다. 그래서 커널도 리눅스 커널을 공용으로 사용하는 것으로 알고있습니다. 그런데, 

```

docker exec -it <컨테이너> sh

```

부분에서 sh, bash, powershell 부분들은 OS에 따라 terminal을 실행하는 명령어가 달라진다는 것인데, OS가 도커 이미지와 컨테이너에 적재된다는 것을 의미하는 것인가요?

2. 만약 OS가 이미지와 컨테이너에 적재된다면, 어떻게 윈도우 같은 운영체제가  리눅스 커널을 사용할 수 있는 지 궁금합니다.

3. 또, OS가 이미지와 컨테이너에 적재된다면, 각 컨테이너에 적재된 운영체제의 커널은 사용하지 않는 것인가요? 

감사합니다.

답변 2

2

John Ahn님의 프로필 이미지
John Ahn
지식공유자

아 이부분은 이렇게 생각하시면 어떨까요  

기본 docker engine은 리눅스를 사용합니다. 

그리고 그 위에 베이스 이미지를 이용하게 됩니다. 

그러기에  그 베이스 이미지에 따라서 bash 를 사용할 수 있게 될 수도 있고 못하게 될 수도 있습니다. 

그리고 리눅스 커널에 관한 이야기는  1강의 10번째 강의를 봐주시면 됩니다.

간단하게 말씀드리면 도커 엔진은 리눅스 환경에서 돌아 가기 때문에 리눅스 커널을 사용하며 

그 의외에 컨테이너의 격리 같은 기능을 사용가능하게 해줍니다. !  

1강의 8번 10번 강의를 다시 봐주시면 더 이해가 잘 될 거라 생각이 됩니다 ^^ 

0

저도 비슷한 궁금증이 있었어요 !

기본 docker engine은 리눅스를 사용합니다. 
그리고 그 위에 베이스 이미지를 이용하게 됩니다. 

이 답변의 의미를,

docker engine은 리눅스를 사용하고, 컨테이너는 해당 pc의 운영체제에 따른 베이스 이미지를 이용한다.

로 이해하면 될까요 ?