728x90
반응형
출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스
컨테이너 개조란
- 컨테이너를 개조하는 방법을 배운다.
컨테이너를 개조하는 방법
- 컨테이너를 개조하는 방법은 2가지가 있다.
- 이전 장에서 배운 파일 복사와 마운트를 이용하는 방법
- 컨테이너에서 리눅스 명령어를 실행하는 방법. 소프트웨어를 설치하거나 설정을 변경할 수 있다.
컨테이너에서 명령어를 실행하려면 셸이 필요하다
- 컨테이너에서 리눅스 명령어를 실행하려면 리눅스에 우리의 명령을 전달해주는 프로그램인 shell(셸)이 필요하다.
- 대부분의 컨테이너에는 bash shell이 설치되어 있다.
- 컨테이너를 아무 설정 없이 실행하면 bash가 동작하지 않은 상태로 실행된다. 그러므로 bash를 실행해 우리의 명령을 입력받을 수 있는 상태로 만들어야 한다.
- bash를 실행하려면 /bin/bash 인자를 입력한다. 사실 우리는 이전 장들에서 몇 번 사용했다.
- /bin/bash는 docker run, docker exec 커맨드와 함께 사용한다.
- docker exec은 컨테이너 속에서 명령어를 실행하는 커맨드이다. docker exec 옵션 컨테이너_이름 /bin/bash
- 실행 중인 컨테이너에 run 커맨드를 사용할 수는 없으므로 exec 커맨드를 사용한다.
- docker run 커맨드는 컨테이너에 들어있는 소프트웨어(ex. 아파치)를 실행하는 대신 bash가 실행되므로 컨테이너는 실행 중인데 소프트웨어는 실행 중이 아닌 상태가 된다. docker run 옵션 이미지_이름 /bin/bash
- bash를 사용한 컨테이너 조작이 끝나고 나면 다시 docker start 커맨드로 컨테이너를 재시작해야 한다.
- 보통 docker exec 커맨드를 주로 사용한다.
- bash가 실행되면 셸에 입력된 명령은 도커 엔진이 아니라 해당 컨테이너로 전달된다. 그래서 프롬프트도 바뀐다.
- bash를 통해 컨테이너 내부를 조작하는 동안에는 도커 명령을 사용할 수 없다.
- 컨테이너 안에서 할 일을 마치면 exit 커맨드를 통해 컨테이너 밖으로 나올 수 있다. 그러면 다시 도커 엔진에 명령을 내릴 수 있다.
도커의 구조
- 도커 엔진을 통해야 하는 명령과 컨테이너 안에서 실행해야 하는 명령의 차이를 알아본다.
도커 엔진을 통한 명령과 컨테이너 내부에서 실행하는 명령
- 도커 엔진을 통해야 하는 명령은 도커 엔진 자체의 시작, 종료, 네트워크, 디스크 설정, 실행 중인 컨테이너 목록 확인 등 컨테이너 전체에 대한 관리 작업이다.
- 컨테이너 내부에서 실행하는 명령은 컨테이너 속에 새로운 소프트웨어를 추가하거나, 컨테이너 속 소프트웨어의 실행 및 종료, 설정 변경, 컨테이너 안과 밖의 파일 복사 및 이동, 삭제 작업이다.
도커와 컨테이너는 별개의 언어를 사용한다
- 도커의 경우 windows나 macOS 그리고 어느 계열의 리눅스인지에 따라 명령의 문법이 서로 다르다.
- 컨테이너에 들어있는 '운영체제 비슷한 것'의 종류가 무엇이냐에 따라 컨테이너 내부에서 사용하는 명령어가 약간씩 달라지게 된다.
- 예를 들어, 컨테이너 A가 데비안 계열(우분투)이고 컨테이너 B가 레드햇 계열(CentOS, Rocky Linux)을 사용한다면 똑같이 도커에서 실행 중인 컨테이너라도 컨테이너 내부에서 사용하는 명령의 스타일이 달라진다.
- ex) 데비안 계열에서 아파치를 설치하는 명령 : apt install apache2, 레드햇 계열에서 아파치를 설치하는 명령 : yum install httpd
- 대부분의 컨테이너는 데비안 계열이다.
728x90
반응형
'Study > 도커와 쿠버네티스 (Docker & Kubernetes)' 카테고리의 다른 글
도커 컴포즈의 설치와 사용법 (0) | 2024.02.16 |
---|---|
도커 컴포즈의 정의 (0) | 2024.02.16 |
컨테이너로 이미지 만들기 (0) | 2024.02.14 |
볼륨 마운트와 바인드 마운트 (0) | 2024.02.13 |
컨테이너와 호스트 간에 파일 복사 (1) | 2024.02.12 |