대화형 모드로 컨테이너 기동 및 정지
일반적인 리눅스 서버에서는 유저가 로그인에 성공하면 이어서 셸이 기동된다.
그러면 터미널을 통해 셸에 명령어를 전달하고 수행 결과가 터미널에 출력된다.
도커에서도 컨테이너에서 셸을 실행할 수 있다.
대화형 모드로 컨테이너 기동(docker run -it)
대화형 모드로 컨테이너를 기동하기 위해서는 docker run -it 리포지터리명:[태그] 셸 과 같이 명령어를 실행해야 한다.
여기서 옵션 -i는 키보드의 입력을 표준 입력(STDIN)으로 셸에 전달하고 옵션 -t는 유서 터미널 디바이스(pts)와 셸을 연결한다.
옵션 --name은 컨테이너의 이름을 지정할 수 있다.
이로써 셸은 터미널과 접속되어있다고 인식하여 셸의 프롬프트를 출력하게 된다.
우분투나 CentOS에서는 bash를 지정할 수 있고, Alpine이나 BusyBox에서는 sh를 지정할 수 있다.
@이후 문자는 컨테이너의 호스트명이자 컨테이너 ID이다.
NAMES에 지정한 컨테이너명으로 저장된 것을 확인할 수 있다.
만약 --name을 사용하지 않는다면 임의의 이름이 자동으로 할당된다.
대화형 모드에서 컨테이너 종료
대화형 모드로 기동한 컨테이너를 종료하기 위해서는 셸에서 exit를 입력하면 셸이 종료되면서 컨테이너도 종료된다.
컨테이너 조작 및 이미지 작성
이번엔 레지스트리에 등록된 공식 이미지 우분투와 CentOS를 기동한 후 소프트웨어 패키지를 설치한 뒤 이미지로 저장해볼것이다.
실행중인 컨테이너는 IP 주소를 할당받고 이를 바탕으로 컨테이너 간 통신을 수행할 수 있다.
네트워크 관련 패키지들을 설치하고 IP 주소를 표시해 보자
우분투는 데비안 계열의 배포판이므로 apt 명령어로 리눅스 패키지를 추가할 수 있다.
CentOS는 레드햇 계열으 리눅스이기 때문에 yum 명령어를 사용한다.
우분투 터미널에는 172.17.0.3, CentOS7 터미널에는 172.17.0.3이 출력되는것을 확인 할 수 있다.
서로 ping을 통해 통신이 되는것을 확인할 수 있으며, HTTP 통신도 가능하다.
이번엔 작업한 내용을 이미지로 만들어보자
이런 방법을 사용해서 다양한 도구를 설치한 이미지를 미리 만들어 놓으면 필요할 때 편리하게 사용할 수 있을 것이란 생각이 들수도 있다.
하지만 나중에 이미지에 어떤 도구를 설치했는지 확인하기 어렵다.
그래서 컨테이너로부터 이미지를 만들지 않는 것이 좋다는 의견도 있다.
실행 중인 컨테이너의 IP 주소는 도커 커맨드로 확인할 수 있다.
명령어 docker inspect [옵션] 컨테이너명|컨테이너ID를 실행하면 컨테이너의 상세 정보를 JSON 형식으로 표시해준다.
'Docker & Kubernetes' 카테고리의 다른 글
컨테이너 개발 (0) | 2021.11.26 |
---|---|
컨테이너 다루기(2/2) (0) | 2021.11.26 |
컨테이너의 생명 주기와 도커 커맨드 (0) | 2021.11.25 |
쿠버네티스 kubectl 커맨드 명령어 시트 (0) | 2021.11.24 |
도커 커맨드 명령어 시트 (0) | 2021.11.24 |