Docker 게시글 모음
Docker 시작하기 <4. docker compose>
도커 컨테이너와 이미지란?
저는 컨테이너는 독립적인 공간 (프로세스의 격리), 이미지는 이 컨테이너의 체크포인트라고 이해하고 있습니다.
컨테이너 하나하나가 vm 인스턴스처럼 사용되고, 이 컨테이너를 배포하고 싶을 때, 이미지로 해당 컨테이너를 저장합니다.
다른 환경에서 이미지를 pull 해오면, 똑같은 환경을 가지게 됩니다. 로컬과 개발 환경 간의 불일치를 해소해 준다는 장점이 있습니다.
컨테이너는 이 이미지에서 변경된 사항만을 컨테이너 계층에 저장하기 때문에 컨테이너에서 수정된 것은 이미지에 영향을 주지 않습니다.
예를 들어, ubuntu:16.04 이미지로 만든 컨테이너 위에서 python, ipfs 등등을 사용하고 있었다고 가정합니다.
그런데, ubuntu:16.04 + apache 를 실행하고 싶어졌다면? python, ipfs는 삭제하고 apache를 실행한다? 아니면 python, ipfs에 apache를 또 설치한다? 어떻게 하면 될까요.
도커에서는 ubuntu:16.04 이미지를 pull해오고 그 위에 apcahe를 실행하면됩니다.
다른 컨테이너에 있는 python, ipfs는 이미지에 영향을 주지 않습니다.
1. 컨테이너 생성
$docker run -it ubuntu:16.04 |
image를 가져오는 것은 pull, 실행은 run 입니다.
docker는 run 명령어를 입력했을 때, 이미지가 존재하지 않으면 자동으로 pull 해옵니다(도커 허브에서).
-it 명령어 :
-i : 컨테이너와 상호(interactive) 입출력 가능
-t : tty 활성화해서 bash 쉘을 사용하도록 함
ubuntu:16.04 image로 만들어진 컨테이너입니다.
컨테이너에서 나가기 :
exit : 정지하고 빠져나가기 /
ctrl+P,Q : 정지하지 않고 빠져나가기 명령어를 사용합니다.
2. 컨테이너 재실행
start : 다시 실행
attach : 컨테이너 내부로 들어가기
$docker start 8fe |
$docker attach 8fe |
root 옆에 해시가 보이시나요? 이는 호스트 이름입니다.
앞의 일부분만 (8fe) 기억해놓으면 개꿀이지요.
3. 이미지 목록 출력
$docker images |
4. 컨테이너 목록 출력
$docker ps (정지되지 않은 컨테이너만) |
$docker ps -a (정지된 컨테이너까지 모두) |
'AWS, Docker > Docker' 카테고리의 다른 글
Docker 활용하기 <1. 웹서버 설치 및 실행> (0) | 2022.02.17 |
---|---|
Docker 시작하기 <Error 기록> (0) | 2022.02.17 |
Docker 시작하기 <4. docker compose> (0) | 2020.08.11 |
Docker 시작하기 <3.Image> (0) | 2020.06.28 |
Docker 시작하기 <1.설치와 재설치> (0) | 2020.06.27 |