도커

도커(이미지, 간단한 명령어들)

라리음 2022. 5. 24. 21:13

 

 

이미지란?

- 이미지는 응용 프로그램을 실행하는데 필요한 모든 것을 포함하고 있음.

 

 

 

 

 

 

 

이미지로 컨테이너 만드는 순서

 

1. DOcker 클라이언트에 docker run <이미지> 입력

2. 도커 이미지에 있는 파일 스냅샷을 컨테이너 하드 디스크에 옮겨 줌.

3. 이미지에서 가지고 있는 명령어 (컨테이너가 실행될 때 사용될 명령어)를 이용해서 응용 프로그램을 실행시켜줌.

 

 

 

이러면 이미지 안에는 시작시 실행 될 명령어, 파일 스냅샷(파일)이 들어가 있음

 

이러한 이미지로 실행하면 컨테이너 안에서 응용프로그램이 실행됨!

 

 

 

 

 

간단한 이미지 내부 파일의 구조 보는 법

 

=> docker run (이미지 이름) (실행시킬 명령어)

 

ex) docker run alpine ls

=> alpine 이미지 안의 리스트를 보여줌

 

 

 

현재 실행중인 컨테이너 나열

=> docker ps

 

원하는 항목만 보기

=> docker ps --format 'table{{.Names}}\table{{.Image}}'

 

모든 컨테이너 나열

=> docker ps -a

 

 

컨테이너 이름 변경

=> docker rename origin-name changed-name

 

 

 

 

 

 

컨테이너의 생명주기

 

 

생성(create) -> 시작(start) -> 실행(running) -> 중지(stopped) -> 삭제(deleted)

 

 

 

생성(create(
시작(start)

 

 

시작할 때는 -a (attach) 명령어를 붙여야 함!

 

 

Stop은 자비롭게 그동안 하던 작업들을 완료하고 컨테이너를 중지 시킴

Kill은 Stop과 달리 어떠한 것도 기다리지 않고 바로 컨테이너를 중지 시킴

 

 

 

 

중지된 컨테이너를 삭제하고 싶다면

=> docker rm <ID/이름>

 

 

모든 컨테이너를 삭제하고 싶다면

=> docker rm 'docker ps -a -q'

 

이미지를 삭제하고 싶다면

=> docker rmi <이미지 id>

 

한번에 컨테이너, 이미지, 네트워크 모두 삭제하고 싶다면 (실행중인 컨테이너에는 영향을 주지 않음)

=> docker system prune

 

 

 

 

 

 

 

이미 실행중인 컨테이너에 명령어를 전달하고 싶다면

=> docker exec <컨테이너 아이디>

 

 

1. docker run은 새로 컨테이너를 만들어서 실행

2. docker exec은 실행중인 컨테이너에 명령어를 전달

 

 

 

 

레디스를 이용한 컨테이너 이해

 

redis 서버를 가동

=> docker run redis

 

redis-cli 가동

=> docker exec -it <컨테이너 아이디> redis-cli

 

*i : interactive

 t : terminal

 

-it를 붙여줘야 명령어를 실행한 후 계속 명령어를 적을 수 있다.

 

 

즉 컨테이너 밖에서 redis-cli명령어는 안 먹히고 컨테이너 안에서 실행해야 하므로 exec 명령어 사용!!!

 

=> docker exec -it <컨테이너 아이디> 명령어

 

좀더 쉽게 하기 위해서는 docker exec -it <컨테이너 아이디> sh로 접속해서 작업!!

 

나올때는 control + D 로 환경에서 나올 수 있음.