Docker CLI(Command Line Interface)란
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 로 종료할 수 있습니다.
'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 |