도커 컨테이너 다루기

## 도커 컨테이너의 생애주기
- 실행 중 상태 : `$ docker container run`명령을 실행하면  Dockerfile에 포함된 CMD와 ENTRYPOINT 인스트럭션에 정의된 애플리케이션이 실행된다.
- 정지 상태 : 컨테이너를 종료하면 가상 환경으로는 더 이상 동작되지 않지만 종료시점의 상태가 저장되어 남는다. 재시작 가능하다.
- 파기 상태: 정지되면 디스크에 종료시 저장상태가 남으므로 사용되지 않는 컨테이너는 최종적으로 제거해주는 것이 좋다. 재시작 할 수 없다.
## docker container run
- `$ docker container run -d -p 3000:3000 example/echo:latest`
- 옵션
	- -it : 컨테이너를 실행하고 컨테이너의 shell로 진입한다.
	- -d : 백그라운드로 실행한다
	- -p : 포트포워딩
	- -rm : 컨테이너 종료시 파기
	- -v : 볼륨 지정. 디렉토리나 파일 공유
## docker container ls
- 실행 중인 컨테이너 목록을 보여준다.
- 옵션
	- -a : 정지된 컨테이너까지 전부 보여준다.
	- -q : 컨테이너 ID만 추출
## docker container stop
- 실행중인 컨테이너를 종료한다.
- `$ docker container stop 컨테이너ID_또는_컨테이너명`
- 컨테이너 명은 실행시 --name 옵션 값이다.
## docker container restart
- 파기되지 않은 컨테이너를 다시 시작한다.
## docker container rm 
- 컨테이너를 완전 파기한다. 재실항되지 않는다.
- 종료된 컨테이너ID 조회 : `$ docker container ls --filter="status=exited" -q`
- `$ docker container rm -f 컨테이너ID`
- 옵션
	- -f : 강제 종료 후 삭제
- `$ docker container run` 시 `--rm`옵션을 붙여주면 컨테이너 종료시 파기된다.
## docker container logs
- 실행중인 컨테이너의 표준 출력을 연결하여 볼 수 있다.
- 다른 좋은 방법이 있으므로 자주 사용되진 않지만 필요할때가 있을 것이다.
- `$ docker container logs 컨테이너ID`
- `$ docker container logs -f $(docker container ls --filter "accestor=jenkins" -q`
## docker container exec
- 실행중인 컨테이너에서 쉘을 실행할 수 있다. 
- 컨테이너를 쉘을 통해 다루고 싶다면, 
	- `$ docker container exec -it 컨테이너ID sh`
## docker container cp
- 컨테이너 간 또는 컨테이너와 호스트 간 파일을 복사할 때 사용한다.

댓글

이 블로그의 인기 게시물

Session 대신 JWT를 사용하는 이유

VSCode에서의 VIM 단축키와 키보드 구매 가이드

우분투에서 테스트링크(testlink)와 맨티스(mantis)로 테스팅 서버 구성하기