Docker CLI 명령어

2023. 8. 17. 16:38·Data Engineer
728x90

Docker CLI(Command Line Interface)란

  • Docker docs : https://docs.docker.com/engine/reference/commandline/container_run/
 

docker container run

docker container run: See [docker run](run.md) for more information.

docs.docker.com

 

도커를 이용하는 데 있어서 명령어, 옵션 등 사용법은 Docker Docs에서 확인할 수 있습니다.

Docker CLI 뿐만 아니라 사용법과 환경을 구성하는 방법에 대해서는 Docker Docs에서 확인하시면 됩니다.

  • 사용법 : Docker CLI, Docker-Compose CLI, API Reference
  • 환경 및 빌드 파일 구성 : DockerFile, Docker-Compose File

추천드리는 방식은 여러분이 웹 서핑을 통해 자료를 찾으실 텐데, 자신이 사용할 자료를 찾았더라도 바로 사용하기 전에 공식 문서인 Docker Docs의 문서를 같이 참조해 보시기 바랍니다.

(Docker Docs는 다른 공식 문서들 중에서 잘 정리가 되어 있기 때문에 보기 편합니다~)

도커 이용

 

도커 이미지가 실행되면 도커 컨테이너가 됩니다

Docker Image

docker image 의 이름은 어떻게 구성된 건지 알아볼까요?

docker/whalesay 라는 이미지를 통해 예제를 실습해 보도록 하겠습니다.

docker image 의 이름은 레지스트리 계정, 레포지토리 이름, 태그 세 가지 정보로 구성되어 있습니다.

 

  • 레지스트리(Registry)
    • Docker Hub : https://hub.docker.com/
    • 도커 이미지가 관리되는 공간입니다.
    • 특별히 다른 것을 지정하지 않는다면 도커 허브(Docker Hub)를 기본 레지스트리로 설정합니다.
    • 레지스트리는 Docker Hub, Private Docker Hub, 회사 내부용 레지스트리 등으로 나뉠 수 있습니다.
  • 레포지토리(Repository)
    • 레지스트리 내에 도커 이미지가 저장되는 공간입니다.
    • 이미지 이름이 사용되기도 합니다.
    • GitHub의 레포지토리와 유사하게 생각하시면 됩니다.
  • 태그(Tag)
    • 같은 이미지라고 할지라도 버전 별로 안의 내용이 조금은 다를 수 있습니다.
    • 해당 이미지를 설명하는 버전 정보를 주로 입력합니다.
    • 특별히 다른 것을 지정하지 않는다면 latest 태그를 붙인 이미지를 가져옵니다.

그럼 이제 docker/whalesay 라는 문장을 다시 읽어보면 아래와 같이 읽을 수 있어야 합니다.

==> Docker Hub라는 레지스트리에서 docker라는 분이 올리신 whalesay 레포지토리에서 latest 태그를 가진 이미지

Docker Hub

Docker Hub : https://hub.docker.com/

Docker Hub는 어떤 Docker Image를 찾거나, Docker Image의 사용방법을 확인할 때 이용하면 좋습니다.

 

  • 아래 명령어를 통해 레지스트리에서 이미지 혹은 레포지토리를 가져옵니다. (pull)
$ docker image pull docker/whalesay:latest

Note: docker pull로 검색하셨을 때도 많은 정보를 찾을 수 있습니다.
혹은 기존에 Docker 를 사용해 보신 분들이라면 docker pull이 더 친숙하실 겁니다.

  • docker image ls : 이미지 리스트를 출력합니다.
$ docker image ls
  • 받아온 이미지를 실행시켜보도록 하겠습니다. (이미지 -> 컨테이너)

 

$ docker container run --name myName docker/whalesay:latest cowsay boo
  • {container} run
    • 컨테이너를 실행합니다.
  • OPTION
    • -name : 컨테이너의 이름을 할당합니다.
  • COMMAND
    • cowsay : 컨테이너에서 cowsay를 호출합니다. (저희가 python을 호출하듯 이용하는 것입니다.)
  • ARG..
    • boo : COMMAND 인 cowsay 에 넘겨질 파라미터입니다.

 

  • 컨테이너 리스트를 출력해 봅시다.
$ docker container ps -a
  • {container} ps : 컨테이너의 리스트를 출력합니다.
  • a : Default 로는 실행되는 컨테이너지만 종료된 컨테이너를 포함하여 모든 컨테이너를 출력합니다.
  • 컨테이너를 삭제하는 명령어도 수행해 봅시다.
$ docker container rm myName
  • {container} rm : 컨테이너를 지칭해서 삭제합니다. 컨테이너를 명시할 때는 ps 명령을 통해 확인할 수 있는 NAMES 혹은 CONTAINER ID 를 사용합니다.
  • 삭제를 할 때는 docker의 status가 Exited 상태이거나 Stop 상태인지 무조건 확인
  • 컨테이너 리소스를 지워보고 다시 실행하면서 cowsay 명령어에 매개변수를 변경해 보세요.
    • EX) AI
    • EX) codestates_AI
    • EX) 자신의 이름
# docker image 의 용량 확인
$ docker image ls

# docker/whalesay 이미지 지우기
$ docker image rm docker/whalesay
    • docker image pull
    • docker image ls
    • docker container run
    • docker container ls
    • docker container rm
    • docker image rm
$ docker container run --name my_name --rm docker/whalesay cowsay boo
  • {container} run : 컨테이너를 실행합니다. 이미지가 없다면 이미지를 받아온 뒤(pull) 실행합니다.
  • -rm : 컨테이너를 일회성으로 실행합니다. 컨테이너가 종료될 때 컨테이너와 관련된 리소스를 모두 제거합니다.
$ docker image rm docker/whalesay
  • image rm : 지정된 도커 이미지를 삭제합니다.

도커는 같은 기능을 수행하더라도 여러 명령으로 실행될 수 있습니다.
아직 docker 측에서 특정 구문만 이용하라는 말은 없습니다.
그래서 웹서핑을 하면서 같은 기능을 하더라도 다른 docker 구문으로 구성되어 있는 경우를 잘 파악할 수 있으셔야 합니다.

  • docker rmi 도 같은 기능을 수행합니다.
$ docker container run -it --rm danielkraic/asciiquarium:latest
  • it : -i, -t 를 동시에 사용한 것으로 터미널 입력을 위한 옵션입니다.
    사용자와 컨테이너 간에 인터렉션이 필요하다면 해당 옵션을 사용합니다.
  • ctrl + c 로 종료할 수 있습니다.
728x90
반응형

'Data Engineer' 카테고리의 다른 글

카프카(Kafka)란?  (0) 2023.09.07
NoSQL이란?  (0) 2023.09.06
WSL vs VM(virtual machine) 어떤 것이 더 좋을까?  (0) 2023.08.16
What is VPC(Virtual Private Cloud)?  (0) 2023.08.15
RESTful API란?  (0) 2023.08.14
'Data Engineer' 카테고리의 다른 글
  • 카프카(Kafka)란?
  • NoSQL이란?
  • WSL vs VM(virtual machine) 어떤 것이 더 좋을까?
  • What is VPC(Virtual Private Cloud)?
Balang
Balang
음악 전공생의 개발일지
  • Balang
    Balang
    Balang
  • 전체
    오늘
    어제
  • 반응형
    • All Post (160)
      • python (47)
        • selenium (4)
        • algorithm (10)
        • Django (6)
        • Pandas | Numpy (22)
      • SQL (9)
      • Data Engineer (36)
      • Data Scientist (3)
      • Data Analysis (11)
      • Computer Science (36)
      • Why? (16)
      • 마음가짐 (2)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Balang
Docker CLI 명령어
상단으로

티스토리툴바