도커 2주차

ggomadev·2024년 4월 23일
0

도커

목록 보기
2/5
post-thumbnail

이미지 내부 파일 시스템 구조 보기

docker run 이미지이름 ls
  • ls 자리(이미지이름 뒤)는 원래 이미지가 갖고 있는 시작 명령어를 무시하고 여기에 있는 커맨드를 실행하게 한다.
  • 시작할 때 하드디스크로 파일 스냅샷(bin, dev, etc...)이 들어가는데, 파일 스냅샷에 담긴 파일에 따라 ls와 같은 특정 명령어 실행 가능 여부가 나뉜다.

컨테이너 나열

docker ps(process status) -a
// -a: 종료된 컨테이너까지 모두 보여줌

docker rename original-name changed-name
// 이름 변경

docker ps --format 'table{{.Names}} \t table{{.Image}}'
// \t는 탭 설정해서 정렬해서 보이도록 해줌

  • CONTAINER ID: 컨테이너 고유 아이디 해시값
  • IMAGE: 컨테이너 생성시 사용한 도커 이미지
  • COMMAND: 컨테이너 시작시 실행될 명령어
  • CREATED: 컨테이너 생성 시간
  • STATUS: 컨테이너 상태(Up, Exited, Pause)
  • PORTS: 컨테이너가 개방한 포트와 호스트에 연결한 포트
  • NAMES: 컨테이너 이름. 컨테이너 생성할 때 --name 옵션으로 설정하지 않으면 도커 엔진이 임의로 형용사와 명사 조합해서 설정 ex. vibrant_volhard

컨테이너 생명주기

  • 생성 -> 시작 -> 실행 -> 중지 -> 삭제

생성, 실행

docker run
// docker create(아이디 생성) + docker start(실행)

중지

docker stop 
// 하던 작업들을 완료하고 중지시킴(SIGTERM, SIGKILL)
docker kill
//바로 컨테이너 중지시킴(SIGKILL)

삭제

  • 실행중인 컨테이너는 먼저 중지한 후에 삭제가 가능함.
docker rm
// 하나씩 삭제
docker rm docker ps -a -q
// 모든 컨테이너 삭제
docker rmi
// 이미지 삭제
docker system prune
// 한번에 컨테이너, 이미지, 네트워크 모두 삭제(실행중인 컨테이너는 삭제되지 않음)

실행중인 컨테이너에 명령어 전달

docker exec
  • run과의 차이점은 실행중이라는 것(run은 새로운 컨테이너를 만들어서 실행한다)
  • 컨테이너 밖에서는 안으로 접근할 수 없어 오류가 발생. 클라이언트를 컨테이너 안으로 넣어줘야함.
docker exec -it 아이디 명령어
-it는 interactive terminal

0개의 댓글