728x90

도커 명령어 정리 (Container, Image, Volume, Network)

들어가며

  • 도커에서 사용하는 대표적인 명령어를 정리해본다.
  • 컨테이너(Container), 이미지(Image), 볼륨(Volume), 네트워크(Network) 관련 명령어와 도커 스웜(Docker Swarm)과 관련된 명령어 그리고 단독으로 쓰이는 명령어를 정리해본다.

 

도커 명령어 형태

  • 도커 명령어의 형태는 다음과 같다.
$ docker 커맨드 (옵션) 대상 (인자)
#           ↘┏ 상위 커맨드
#             ┗ 하위 커맨드

 

  • @docker@ 명령어 뒤에 오는 '무엇을' '어떻게'에 해당하는 부분을 ‘커맨드(Command)’라고 한다.
  • 커맨드는 다시 '상위 커맨드’‘하위 커맨드’로 구성되며, 상위 커맨드가 ‘무엇을’, 하위 커맨드가 ‘어떻게’에 해당하는 내용을 지정한다.
  • 옵션은 명령에 세세한 설정을 지정하는 용도로 쓰인다.
    • 옵션은 커맨드의 종류에 따라 달라진다.
    • 옵션은 @-@ 또는 @--@으로 시작하는 것이 일반적이지만, @-@ 기호를 붙이지 않는 경우도 있다.
      • 관례상 생략형에는 @-@를, 그렇지 않을 때는 @--@를 사용한다.
  • 대상에는 컨테이너명 또는 이미지명 등 구체적인 이름이 들어간다.
  • 인자에는 대상에 전달할 값을 지정한다. 
    • 문자 코드 또는 포트 번호 등을 전달한다. (인자를 지정하는 경우는 그리 많지 않다.)
    • 옵션과 마찬가지로 @-@ 또는 @--@로 시작하는 경우가 많다.
  • @docker@ 명령 뒤로 ‘무엇을’, ‘어떻게’, ‘대상’의 순으로 지정하면 된다.

 

도커 1.13부터 커맨드가 재편되면서 상위 커맨드와 하위 커맨드의 조합 형태로 일원화됐다. 일부 커맨드는 커맨드 자체가 변경되기도 했다. 예를 들어, 이전에는 container run이 아니라 run이라고만 표기해도 됐으나, 이런 커맨드가 container run과 같이 상위 커맨드 + 하위 커맨드의 형식으로 수정됐다. 하지만 이전 커맨드와의 호환성을 유지하기 위해 이전 표기법(상위 커맨드가 없는)으로도 실행 가능하지만, 언제 수정될지 모르는 기능이니 ‘상위 커맨드가 있다는 것’ 정도는 기억해둔다. 
일부 커맨드에서는 단독 커맨드 형태로 상위 커맨드 없이 사용하는 것이 남아 있다.

 

명령어 사용 예
  • 이름이 @devastra@인 이미지컨테이너(Container) 실행(Run)하려면 다음과 같은 명령을 입력하면 된다.
$ docker dcontainer run devastra

 

  • 이름이 @devastra@인 이미지를 컨테이너(Container)로 실행하는데, 백그라운드(@-d@) 그리고 @모드1@로 실행(@--mode=1@하려면 다음과 같은 명령을 입력하면 된다.
$ docker container run -d devastra --mode=1
#        상위Cmd 하위Cmd 옵션 대상  인자
#           커맨드(Cmd)

 

대표적인 도커 명령어

치트 시트(Cheat Sheet)

Docker Command Cheatsheet.pdf
0.06MB

 

컨테이너 조작 관련 명령 (상위 커맨드 : @cotainer@)

  • 컨테이너를 실행하거나 종료하고, 컨테이너 목록을 확인하는 등 컨테이너를 다루기 위해 사용하는 명령
  • 컨테이너를 대상으로 어떤 일을 할지는 하위 커맨드를 통해 지정한다.
$ docker container 하위_커맨드 옵션
하위 커맨드 내용 생략 가능 여부 주요 옵션
@start@ 컨테이너 실행 O @-i@
@stop@ 컨테이너 정지 O 거의 사용하지 않음.
@create@ 도커 이미지로부터 컨테이너를 생성 O @--name@, @-e@, @-p@, @-v@
@run@ - 도커 이미지를 내려 받고 컨테이너를 생성해 실행함. (다운로드는 필요한 경우에만)
- 아래의 3개 명령을 하나로 합친 것과 같음.
> @docker image pull@
> @docker container create@
> @docker container start@
O @--name@, @-e@, @-p@, @-v@, @-d@, @-i@, @-t@
@rm@ 정지 상태의 컨테이너 삭제 O @-f@, @-v@
@exec@ 실행 중인 컨테이너 속에서 프로그램을 실행 O @-i@, @-t@
@ls@ 컨테이너 목록 출력 @*1@ @-a@
@cp@ 도커 컨테이너와 도커 호스트 간에 파일을 복사 O 거의 사용하지 않음.
@commit@ 도커 컨테이너를 이미지로 변환 O 거의 사용하지 않음.
  • 생략 가능 명령은 @docker container 하위_커맨드@가 아니라 @docker 하위_커맨드@와 같이 실행한다. (이 방법은 예전과의 호환성을 위한 것이다.)
  • @*1@ : 생략형은 @docker ps@

 

이미지 조작 관련 명령 (상위 커맨드 : @image@)

  • 이미지를 내려받거나 검색하는 등 이미지와 관련된 기능을 실행하는 명령
  • 이미지를 대상으로 어떤 일을 할지는 하위 커맨드를 통해 지정한다.
$ docker image 하위_커맨드 옵션
하위 커맨드 내용 생략 가능 여부 주요 옵션
@pull@ 도커 허브 등의 레포지토리에서 이미지를 내려 받음 O 거의 사용하지 않음.
@rm@ 도커 이미지를 삭제 @*2@ 거의 사용하지 않음.
@ls@ 내려 받은 이미지의 목록을 출력 X 거의 사용하지 않음.
@build@ 도커 이미지를 생성 O @-t@
  • 생략 가능 명령은 @docker image 하위_커맨드@가 아니라 @docker 하위_커맨드@와 같이 실행한다. (이 방법은 예전과의 호환성을 위한 것이다.)
  • @*2@ : 생략형은 @docker rmi@

 

볼륨 조작 관련 명령 (상위 커맨드 : @volume@)

  • 볼륨 생성, 목록 확인, 삭제 등 볼륨과 관련된 기능을 실행하는 명령
    • 볼륨(Volume) : 컨테이너를 마운트 할 수 있는 스토리지
  • 볼륨을 대상으로 어떤 일을 할지는 하위 커맨드를 통해 지정한다.
$ docker volume 하위_커맨드 옵션
하위 커맨드  내용 생략 가능 여부 주요 옵션
@create@ 볼륨을 생성 X @--name@
@inspect@ 볼륨의 상세 정보를 출력 X 거의 사용하지 않음.
@ls@ 볼륨의 목록을 출력 X @-a@
@prune@ 현재 마운트되지 않은 볼륨을 모두 삭제 X 거의 사용하지 않음.
@rm@ 지정한 볼륨을 삭제 X 거의 사용하지 않음.

 

네트워크 조작 관련 명령 (상위 커맨드 : @network@)

  • 도커 네트워크의 생성, 삭제, 컨테이너의 네트워크 접속 및 접속 해제 등 도커 네트워크와 관련된 기능을 실행하는 명령
    • 도커 네트워크(Docker Network) : 도커 요소 간의 통신에 사용하는 가상 네트워크
  • 도커 네트워크를 대상으로 어떤 일을 할지는 하위 커맨드를 통해 지정한다.
$ docker network 하위_커맨드 옵션
하위 커맨드 내용 생략 가능 여부 주요 옵션
@connect@ 컨테이너를 도커 네트워크에 연결 X 거의 사용하지 않음.
@disconnect@ 컨테이너의 도커 네트워크 연결을 해제 X 거의 사용하지 않음.
@create@ 도커 네트워크 생성 X 거의 사용하지 않음.
@inspect@ 도커 네트워크의 상세 정보 출력 X 거의 사용하지 않음.
@ls@ 도커 네트워크의 목록 출력 X 거의 사용하지 않음.
@prune@ 현재 컨테이너가 접속하지 않은 네트워크 모두 삭제 X 거의 사용하지 않음.
@rm@ 지정한 네트워크 삭제 X 거의 사용하지 않음.

 

그 밖의 상위 커맨드

  • 이 밖에도 다음과 같은 상위 커맨드가 있다.
  • 이들 중 대부분은 도커 스웜(Docker Swarm)과 관련된 커맨드이다.
상위 커맨드 내용
@checkpoint@ 현재 상태를 일시적으로 저장한 후, 나중에 해당 시점의 상태로 되돌릴 수 있다.
@node@ 도커 스웜의 노드를 관리하는 기능
@plugin@ 플러그인을 관리하는 기능
@secret@ 도커 스웜의 비밀값 정보를 관리하는 기능
@service@ 도커 스웜의 서비스를 관리하는 기능
@stack@ 도커 스웜 또는 쿠버네티스에서 여러 개의 서비스를 합쳐 구성한 스택을 관리하는 기능
@swarm@ 도커 스웜을 관리하는 기능
@system@ 도커 엔진의 정보를 확인하는 기능

 

단독으로 쓰이는 명령

  • 상위 커맨드 없이 단독으로 쓰이는 특수한 명령 4가지가 있다.
  • 주로 도커 허브의 검색이나 로그인에 사용되는 명령이다.
단독 커맨드 내용 주요 옵션
@login@ 도커 레지스트리에 로그인 @-u@, @-p@
@logout@ 도커 레지스트리에서 로그아웃 거의 사용하지 않음.
@search@ 도커 레지스트리를 검색 거의 사용하지 않음.
@version@ 도커 엔진 및 명령행 도구의 버전을 출력 거의 사용하지 않음.

 

참고 사이트

 

Docker Commands Cheat Sheet {Downloadable PDF} | phoenixNAP

The ultimate Docker Commands cheat sheet. Find everything you need to in this handy reference for the most common Docker commands.

phoenixnap.com

728x90