반응형
1. 도커 컨테이너 생명주기
- 보통 우리는 docker run 명령어를 이용하여 컨테이너 생성과 실행을 한번에 하였는데, 원래는 create + start로 나누어 볼 수 있다.
2. 도커 실행 (docker run = docker crete + docer start)
- docker create 이미지 이름 (녹색 박스) : 파일 스냅샷을 하드디스크에 넣어줌.
- docker start 컨테이너 아이디 or 이름 (파란색 박스) : 이미지에서 받아온 시작 명령어 실행.
3. 도커 실행 중지 (docker stop VS docker kill)
- docker stop <중지할 컨테이너 아이디 or 이름> : 현재 진행중이던 작업을 정리할 시간을 기다렸다가 컨테이너를 중지.
- docker kill <중지할 컨테이너 아이디 or 이름> : 현재 작업지 진행중이라도 정리할 시간을 기다려주지 않고 바로 중지.
- 중지할 컨테이너 아이디는 "docker ps -a" 명령어를 통해 확인 가능하다.
4. 도커 컨테이너 삭제
docker rm a68d6fa2eaed
- 실행중인 컨테이너는 반드시 중지해야 삭제가 가능하다.
- 삭제할 컨테이너 아이디는 "docker ps -a" 명령어를 통해 확인 가능하다.
- 특정 컨테이너 삭제 : docker rm <컨테이너 아이디>
docker rm `docker ps -a -q`
- 전체 컨테이너 삭제 : docker rm `docker ps -a -q`
- 여기서 옵션 앞에있는 `기호는 작은 따옴표가 아니라 숫자1 왼족에 있는 억음부호이다.
- 이미지 삭제 : docker rmi <이미지 id>
- 사용하지 않는 컨테이너를 한번에 정리 : docker system prune
- 실행중인 컨테이너에는 영향을 주지 않는다.
- 컨테이너, 이미지, 네트워크 한번에 정리.
5. 도커 실행 중 명령어 전달하기
# docker exec <컨테이너 아이디> <명령어>
docker exec cbba6354bdad ls
- 도커 실행중에 명령어를 사용하기 위해서는 컨테이너 안에서 실행을 해야 하기에 컨테이너 아이디를 적어줘야 한다.
(docker ps로 확인) - ex) 터미널 A에서 docker run redis 실행후 터미널 B에서 redis-cli 명령어를 쓰는경우 정상적으로 작동하지 않음.
=> 터미널 A는 redis 컨테이너를 실행되고 있는 중에 터미널 B의 명령어는 redis 컨테이너 밖이기 때문에 명령어가 작동하지 않으므로 다음과 같아야 한다.
# docker exec -it <컨테이너 아이디> <명령어>
docker exec -it cbba6354bdad redis-cli
- -it 옵션 : interactive terminal의약자로. 명령어 실행후에 빠져나오지 않고 계속해서 명령어를 입력할 수 있게 해줌.
6. 실행중인 컨테이너의 터미널로 접근하기
# docker exec -it <컨테이너 아이디> <sh/bash/zsh 등등..>
docker exec -it a096f4bf67f6 sh
- 실행중인 컨테이너에 여러번 명령어를 실행해야 할 경우 5번에 설명한것과 같이 "docker exec -it <컨테이너 아이디> <명령어>" 방식으로 계속 입력하기에는 비효율적임
- 실행중인 컨테이니의 터미널로 접근도 가능하다.
- 터미널 종료 방법은 control + D
반응형
'개발 일기라기 보단 메모장 > Docker' 카테고리의 다른 글
08. 도커(docker) 이미지 빌드 예제 (0) | 2021.12.04 |
---|---|
07. 도커(docker) 이미지 만들기 (0) | 2021.11.29 |
05. 도커(docker) 이미지로 컨테이너 만들기 (0) | 2021.11.17 |
04. 도커(Docker) 컨테이너란? (가상화 기술과의 비교) (0) | 2021.11.16 |
03. 도커(Docker) 실행 순서 (0) | 2021.11.16 |