[Docker] Docker 기본 명령어

Woong·2021년 12월 25일
0

Docker, k8s

목록 보기
2/8

docker image

docker images (=docker image ls)

  • 다운로드된 이미지 표시
    • --no-trunc : docker image ID 를 긴 원본값 그대로 볼 수 있음
[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    d1165f221234   4 hours ago   13.3kB
  • 주의!!!!
    • docker images ls -> 'ls' 라는 도커 이미지를 보여주라는 뜻.
    • 에러는 안나지만 의도와는 잘못된 출력이 됨

docker image inspect

  • docker 이미지 상세 정보 표시

docker image pull

  • docker 이미지 다운로드
    • 버전 명시하지 않는다면 최신 버전으로 다운로드
  • image 를 생략하요 docker pull 로도 사용 가능

docker image rm

  • docker 이미지 삭제
    • docker image rm {이미지명}

docker image inspect

  • 메타데이터 상세정보 출력 (JSON 포맷)
    • docker image inspect {image_name}
    • ex) docker image inspect --format="{{.Config.Image}}" alpine
      * Config 안의 Image 의 value 값을 보여줌

docker image prune

  • 사용하지 않는 도커 이미지를 삭제함

docker 이미지 저장 경로

  • /var/lib/docker/

    • 컨테이너는 containers 디렉토리에 해시값으로 컨테이너 정보 파일이 저장됨
      여길 local cache 영역이라고 부름
  • ex) image id 로 docker 이미지 검색

 [root@localhost ~]# find  /var/lib/docker -name d1165f221234*
/var/lib/docker/image/overlay2/imagedb/content/sha256/d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726

docker container

docker container ps -a

  • 실행중인 컨테이너 목록 나열
  • 컨테이너는 아무 행동도 하지 않으면 종료됨
  • docker hub 에 있는 컨테이너 이미지를 검색
    • docker search {이미지명}
    • ex) docker search httpd
  • 'container' 생략하고 docker search 로도 사용 가능

docker container run

  • docker 컨테이너 실행
    • docker run -d --dns 192.168.1.1 --name myapache httpd:2.4
    • -d : 백그라운드 실행. 옵션 안주면 포그라운드로 실행
      (ctrl + c 하면 컨테이너 꺼짐. 쉘 닫는건 상관없는듯)
    • 컨테이너 이름을 주지 않으면 랜덤으로 지어져서 실행
    • --dns : DNS IP 지정
    • --net : 컨테이너 네트워크 지정
  • 컨테이너는 아무 행동도 하지 않으면 종료됨
  • httpd 컨테이너의 경우, apache 데몬이 계속 실행중이므로 종료되지 않음

docker container start/stop/restart

  • docker 컨테이너 시작, 중지, 재시작

docker container pause/unpause

  • pause : 컨테이너에서 실행중인 프로세스를 모두 중단
  • unpause : pause 된 컨테이너 시작, 중지, 재시작

docker container rm

  • 컨테이너 삭제
    • docker container rm {컨테이너명}
    • -f : 강제 삭제
    • 컨테이너 삭제하려면 정지해야함
  • ※ 컨테이너 이름은 이미지 이름과 다름

docker exec

  • -it {container_name} /bin/bash
    • 쉘 접근시 -it 옵션 필요
    • -i : interactive (대화형으로 실행하라)
    • -t : terminal
  • ※ 일반 운영체제가 아니니 ps 같은 것도 없음

docker container stats

  • docker 컨테이너 가동 상태 확인

docker constainer top

  • 컨테이너에서 실행중인 프로세스 확인

docker network

docker network ls

  • docker 네트워크 목록 나열
    • default가 bridge임.
[devops@localhost ~]$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
2812687ed0e7   bridge    bridge    local
e83a3272bbf3   host      host      local
52b79843d96c   none      null      local
  • ex) docker network inspect bridge
    • bridge 네트워크를 쓰고 있는 모든 컨테이너 정보를 볼 수 있음.
  • brctl show
    • 브릿지 네트워크 봄 (bridge-utils 패키지 설치 따로 해줘야함)
    • yum provides brctl
      * 참고) yum provides 하면 해당 명령어가 포함된 패키지를 찾을 수 있음.

docker network create

  • 컨테이너를 위한 네트워크 생성
    • --driver=bridge 는 -d bridge 와 동일
    • [devops@localhost ~]$ docker network create --driver=bridge mybridge
      8f43200b149ae34ed746664986fcff153530b4603589a46be31e22a270879964
          ````
  • docker network create -d bridge --subnet 172.30.0.0/16 --ip-range 172.30.0.0/24 --gateway 172.30.0.1 newbridge
    • 이런 식으로 옵션 자세하게 줘서 생성하는 것도 가능.

컨테이너 실행시 네트워크 지정

  • 컨테이너를 올릴 때 아예 --network 옵션을 줘서 네트워크를 지정할 수 있음.
    • docker run -d --name=centos-7 --network mybridge centos:7 /bin/sleep 60s
  • 이미 한 네트워크 연결된 컨테이너에 다른 네트워크를 connect 하면 2개가 연결이 되게 됨

docker network connect/disconnect

  • 컨테이너 네트워크 연결하거나 끊음
    • docker network connect {network_name} {container_name}
      docker network disconnect {network_name} {container_name}
    • ex. myapache 컨테이너를 bridge 네트워크 끊고 mybridge 네트워크로 연결
      • [devops@localhost ~]$ docker network disconnect bridge myapache
      • [devops@localhost ~]$ docker network connect mybridge myapache

docker network rm

  • 네트워크 삭제
    • docker network rm {network_name}
    • 단, bridge 같은 원래부터 있는 네트워크는 삭제 불가.

네트워크 관련해서.

  • 컨테이너간에도 네트워크 접속이 가능함.
  • host 전용 : 외부네트워크 안되고 호스트-게스트간 네트워크만 가능
  • NAT(network address translation) : 외부네트워크 연결. host-guest간 네트워크 안됨

기타 명령어

docker version

  • docker 의 버전, Go 언어 버전, OS, 아키텍처 표시

docker system info

  • docker 실행 환경의 상세 설정 표시

docker system df

  • docker 가 사용하는 디스크 이용 상황 표시

docker logs [컨테이너 이름]

  • 해당 컨테이너에 대한 docker log 를 볼 수 있음

네이밍규칙

컨테이너 네이밍 규칙

  • 아래 조건을 만족하는 이름으로만 지을 수 있음
    • [a-zA-Z0-9][a-zA-Z0-9_.-]

0개의 댓글