Docker & Kubernetes

컨테이너 다루기(2/2)

beekei 2021. 11. 26. 10:22
반응형
여러 터미널에서 조작하기

2개 이상의 터미널에서 하나의 컨테이너에 접속하여 작업을 수행하는 것도 가능하다.

CentOS7 컨테이너 실행
실행중인 컨테이너에 접속

이처럼 같은 컨테이너에 여러 터미널이 접속하여 작업하는 것이 가능하다.

인증 과정도 없기 때문에 가상 서버보다 더 편리하게 사용할 수 있다.

이때 보안을 위해 호스트 외부에서 접속은 막혀 있다.

또한 컨테이너 내에는 외부에서 로그인하기 위한 sshd를 기동시키지 말아야 한다는 의견도 있다.

 

로그인을 관리하지 않는 컨테이너

리눅스 서버에서는 w 명령어로 동시에 로그인한 다른 유저의 정보를 얻을 수 있다.

접속한 유저 정보

하지만 아무것도 출력되지 않는다.

이유는 컨테이너에 로그인을 통한 유저 인증 기능도 없고, 유저 자체를 관리하지 않기 때문이다.

리눅스는 기본적으로 멀티 유저용으로 개발되었지만 컨테이너는 싱글 유저용으로 만들기위해 해당 기능을 제거했다.

 

이에 따라 ps 커맨드와  tty 커맨드로 확인해 보겠다.

유사 터미널 pts/1에 연결되어있는 것을 확인할 수 있다.

이는 docker run의 -t 옵션에 의해 서버에 로그인하는 것과 비슷하게 유사 터미널이 셸에 접속했기 때문이다.

 

여기서 ps ax를 실행해 보면

셸을 2개 확인할 수 있는데 PID 1은 docker run으로 기동한 bash이고, 유사 터미널 pts/0과 연결되어 있다.

 

컨테이너를 일종의 가상서버로 생각하기 쉬운데 위에서 볼 수 있듯이 사실은 그렇지 않다.

컨테이너는 목표로 하는 프로세스만을 실행할 수 있도록 고안된 실행 환경인 것이다.

 

컨테이너를 실행한 터미널에서 tty 커맨드를 실행해 보면 터미널의 디바이스 번호가 0으로 나오며, w 커맨드로도 아무것도 표시되지 않는 것을 확인할 수 있다.

반응형