컨테이너 명령어
Container 명령 테스트
샘플 파일 (notion 참조)
1.
홈디렉토리로 간다
cd ~

mkdir nodejsapp
cd nodejsapp

vi app.js # 테스트용 nodejs 앱

:wq 로 저장 하고 나온다
vi Dockerfile # 새로운 도커 이미지를 위한 Dockerfile
위랑 같다

docker buildx build -t {이름} :1.0 . # 1.0 태그를 추가하여 node-test라는 이미지를 빌드
도커 파이렝 있는 것들을 순차 적으로 하는것이다.

docker images | grep {이름} # 빌드 완료한 이미지 보기

docker image history {이름} :1.0 # 1.0으로 태그 추가한 이미지의 Dockerfile history

docker run -itd -p 6060:6060 --name= {이름} -h node-test node-test:1.0
(실행 해 보겠습니다)

docker ps | grep {이름}
(실행되는걸 볼수있다.)

curl http://localhost:6060
(포트 6060 )

docker logs {이름}

docker run 자주 사용하는 옵션
- -d: detached mode; 백그라운드 모드
- -p: 호스트와 컨테이너의 포트를 연결(포워딩)
- -v: 호스트와 컨테이너의 디렉토리를 연결(마운트)
- -e: 컨테이너 내에서 사용할 환경변수 설정
- -name: 컨테이너 이름 설정
- -rm: 프로세스 종료 시 컨테이너 자동 삭제
- -ti: -i 와 -t 를 동시에 사용한 것으로 터미널 입력을 위한 옵션
실행 중인 Container에 대한 정보
# 컨테이너에서 실행 중인 프로세스 조회
docker top {이름}

# 컨테이너에 매핑된 포트 조회
docker port {이름}

# 컨테이너 리소스 통계 출력 (1회)
docker stats {이름} --no-stream

# 컨테이너 리소스 통계 출력 (스트림)
docker stats {이름}

실핼 할때 마다 로그가 쌓입니다

docker logs -f {이름}
하면 실시간으로 쌓이는걸 볼수 있슴.
# 출력된 로그는 파일로 관리되기 때문에 HostOS 의 disk 를 사용
docker info | grep -i log

docker [container] inspect
# 컨테이너 내부 확인
docker inspect {이름}
뭐가 엄청 많이 나오는 데 state 하고 뭐가 실해되고 있는지만 확

docker stop | start | pause | unpause
# 터미널1, 도커 상태 확인
docker stats
(실시간으로 나옵니다)

# 터미널2, 도커 프로세스 이벤트 확인
docker events
이녀석도 실시간 입니다.

# 터미널3, docker start
docker stop {이름}
위에 짤 이랑 같음
docker ps –a

docker start {이름}

#
docker pause {이름}
(일시 정지)

docker unpause {이름}
(일시 정지 해제)


docker ps -a

docker exit code
- 0
- Docker Process가 수행해야 할 모든 Command 또는 Shell을 실행하고 정상 종료
- 255
- Docker Image에 정의된 EntryPoint 또는 CMD가 수행이 완료되었을 경우 발생
- 125
- Docker run 명령어의 실패로 실제 docker process가 기동되지 않음
- 126
- Docker Container 내부에서 Command를 실행하지 못할 경우 발생
- 127
- Docker Container 내부에서 Command를 발견하지 못하였을 경우 발생
- 137
- kill -9로 인해 종료 됨
- 141
- 잘못된 메모리 참조하여 종료 됨
- 143
- Linux Signal로 정상 종료 됨
- 147
- 터미널에서 입력된 정지 시그널로 종료 됨
- 149
- 자식 프로세스가 종료 되어 종료 됨
Docker Container를 정리하는 방법을 알아봅니다.
# 중지된 컨테이너를 포함하여 모든 컨테이너 리스트
docker container ls -a

#
docker container prune
( 중지된 컨테이너 전부 삭제)

docker image prune
태그가 붙지 않은(dangling) 모든 이미지 삭제
docker image prune

# 남아 있는 이미지 리스트 확인 – 실행 중인 컨테이너의 이미지 등
docker image ls

docker image ls -a 하면 종료된것도 다 보임
docker system prune
사용하지 않는 도커 이미지, 컨테이너, 볼륨, 네트워크 등 모든 도커 리소스를 일괄적으로 삭제
