docker 주 명령어

test·2021년 12월 29일

docker

목록 보기
2/6
post-thumbnail

docker 명령어 이해하기

ch1. docker 접속

  • 먼저 docker 사이트에 들어가서 회원가입
  • 터미널에서 docker login
docker login
  • 접속시 유의할 점은 email로 가입 했더라도 커맨드에서 로그인 할 때 닉네임을 적어줘야함
  • 로그아웃
docker logout

ch2. docker image 관련 명령어

1. 다운받을 ubuntu 이미지 검색

  • 예시로 ubuntu image
docker search ubuntu
  • ubuntu 상위5개 검색
docker search --limit=5 ubuntu

2. docker 이미지 다운로드

  • :10.04 버전을 제외하면 latest(최신버전) 다운로드
docker pull ubuntu:20.10

3. 다운로드 받은 이미지 목록 확인

  • 이미지 내용 전체 리스트 확인
docker images
  • 이미지 ID만 리스트로 확인
docker images -q

4. 다운받은 이미지 삭제하기

  • 특정 이미지 삭제하기
docker rmi {IMAGE ID or REPOSITORY NAME}
docker image rm {IMAGE ID or REPOSITORY NAME}
  • 이미지 전체 삭제
docker rmi -f $(docker images -q)

5. 이미지 세부 정보

docker inspect {IMAGE NAME}

ch3. docker container 관련 명령어

  • 앞서 다운받은 images는 container로 만들어야 실행 가능

1. 컨테이너 생성

  • 다운받은 ubuntu 이미지로 컨테이너 생성
docker create ubuntu
  • 컨테이너 생성 시 이름 부여(삭제할 때 사용되는 이름)
docker create --name test_ubuntu ubuntu

2. 생선된 컨테이너 확인

  • 실행중인 컨테이너 확인
docker ps
  • 생성된 컨테이너 전체 확인
docker ps -a
  • 컨테이너의 ID만 확인
docker ps -a -q

3. 생성된 컨테이너 실행

docker start {CONTAINER NAME}
  • 실행 후 docker ps로 실행 컨테이너를 확인하려 해도 보이지 않는다. 이유는 실행 되자마자 중지되기 때문. 컨테이너 실행 후 유지하는 명령어들이 있어야함

4. 컨테이너 종료

  • 백그라운드로 실행한 컨테이너 중지
  • 중지된 컨테이너는 start로 재실행 가능
docker stop {CONTAINER NAME}
  • 실행 중인 컨테이너 전체 종료
docker stop $(docker ps -a -q)

5. 컨테이너 삭제

  • 특정 컨테이너 삭제
docker rm {CONTAINER ID or NAME}
  • 컨테이너 전체 삭제
docker rm $(docker ps -a -q)
  • 여기서 name은 컨테이너 리스트 확인 중 나오는 NAMES를 말함
  • 실행 중인 컨테이너는 삭제되지 않기에 종료 후 삭제

6. 컨테이너 파일 이동

  • 컨테이너에서 현재 디렉토리로 파일 가져오기
docker cp {CONTAINER NAME}:/etc/test/conf/default.conf ./
  • 파일 컨테이너에 넣기(test_default.conf -> default.conf 덮어씌움)
docker cp ./test_default.conf {CONTAINER NAME}:/etc/test/conf/default.conf

7. 컨테이너 변경사항 적용한 이미지 생성

  • 컨테이너 에서 작업한 내용을 포함시켜 새로운 이미지로 생성
docker commit -m "message" {IMAGE NAME} {NEW IMAGE NAME}

8. 기존 이미지와 변경 사항 비교

  • 컨테이너가 실행 되면서 기존의 이미지와 비교하여 변경된 파일 출력(추가, 수정, 삭제 모두 출력됨)
docker diff {CONTAINER NAME}

9. 컨테이너 세부 정보 확인

docker inspect {CONTAINER NAME}

ch4. docker run 관련 명령어

  • docker run 이란.. 새로운 이미지를 컨테이너로 만들고 실행까지 즉, docker create & start 라고 생각하면 이해하기 쉽다.
  • docker run의 주요 옵션
옵션설명
-i컨테이너 입력을 열어 놓는 옵션
-t가상 터미널을 할당하는 옵션(주로 -it로 함께 사용)
-p호스트와 컨테이너 포트 연결
-d컨테이너를 백그라운드에서 실행
-v호스트와 컨테이너 디렉토리 연결
--rm컨테이너 종료시 자동으로 컨테이너 삭제
--name컨테이너 이름 설정

1. docker run 예시

  • ubuntu 이미지를 기반으로 test_ubuntu라는 이름으로 컨테이너 생성 후, ubuntu 내로 들어가서 터미널로 명령어 칠 수 있는 환경 생성, exit로 컨테이너에서 나올 수 있고, 컨테이너 종료시 삭제
docker run -it --rm --name test_ubuntu ubuntu

2. 실행중인 컨테이너 사용 리소스 확인

  • 종료는 ctrl+c
docker container stats

3. 실행중인 컨테이너에 연결하기

  • run에 -it -d 옵션으로 백그라운드 실행
docker run -it -d --name test_ubuntu ubuntu
  • 위 컨테이너에 연결하여 명령하기
docker attach test_ubuntu

4. 실행중인 컨테이너 명령 실행

  • 컨테이너가 실행 중일 때만 실행 가능
docker exec {CONTAINER_ID} {명령} {인자}
  • exec 명령으로 컨테이너 안에 접속하기
docker exec -it test_ubuntu /bin/sh
  • exec와 attach의 차이
    exec는 해당 컨테이너에 신규 명령을 실행하는 명령어
    attach는 컨테이너에 연결한는 명령어

+ 전체 적용 관련 명령어

명령어설명
docker stop $(docker ps -a -a)모든 컨테이너 중지
docker rm $(docker ps -a -q)모든 컨테이너 삭제
docker rmi -f $(docker images -q)모은 이미지 삭제
docker container prune정지된 컨테이너 삭제
docker image prune실행중인 컨테이너 image 외의 이미지 삭제
docker system prune정지된 컨테이너, 실행중인 컨테이너,
이미지 외의 이미지, 볼륨, 네트워크 삭제
profile
bedev

0개의 댓글