AWS/Docker+CICD

컨테이너 명령어

sehunbang 2024. 4. 3. 15:14

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

 

사용하지 않는 도커 이미지, 컨테이너, 볼륨, 네트워크 등 모든 도커 리소스를 일괄적으로 삭제