무지개곰
article thumbnail
반응형

Docker가 무엇인지에 대한 설명은 전문가 분들이 설명해 주신 글이 많기에 여기에서는 제가 공부한 내용을 복습 겸 기록해 두겠습니다. 핵심 개념은 무엇인지, 설치는 어떻게 하는지, 주요 명령어는 어떠한 것이 있는지 기록해 두고 필요할 때마다 확인할 수 있도록 요점만 기록하도록 노력하겠습니다.

* Building Microservices with Go 책을 참고하여 작성하였습니다.

목차

Docker의 핵심 개념

Docker 설치

Docker desktop 맛보기


Docker의 핵심 개념

이미지

Docker 이미지는 애플리케이션과 그 실행에 필요한 모든 것을 포함하는 패키지입니다. 이미지는 읽기 전용이며, 컨테이너를 생성하는 데 사용됩니다. Docker Hub와 같은 이미지 레지스트리에서 공개 이미지를 가져오거나, 직접 만들 수 있습니다.

컨테이너

컨테이너는 Docker 이미지를 실행하는 격리된 환경입니다. 컨테이너는 호스트 시스템과 격리되어 있으며, 애플리케이션 및 종속성을 분리하여 이식성과 확장성을 제공합니다.

레지스트리

Docker 레지스트리는 Docker 이미지를 저장하고 공유하는 저장소입니다. Docker Hub는 공개 이미지를 제공하며, 개인이나 조직은 자체 레지스트리를 운영할 수 있습니다.

컴포즈

Docker Compose는 여러 컨테이너로 구성된 애플리케이션을 정의하고 실행하기 위한 도구입니다. YAML 파일을 사용하여 애플리케이션 구성을 정의하고 'docker-compose' 명령어로 관리할 수 있습니다.

YAML 파일을 사용하여 여러 컨테이너를 동시에 시작할 수 있는 Docker의 강력한 기능입니다.


Docker 설치

Docker 설치는 아래의 주소로 접속하여 운영체제에 맞추어 설치하시면 됩니다.

https://docs.docker.com/engine/install/

 

Install Docker Engine

Choose the best method for you to install Docker Engine. This client-server application is available on Linux, Mac, Windows, and as a static binary.

docs.docker.com

설치 확인

저는 window를 사용하고 있습니다. 위의 링크에서 Docker desktop을 다운로드하고 cmd창에서 아래의 명령어를 입력하여 Docker를 사용해 보겠습니다.

docker run --rm hello-world

명령어를 실행하면 아래와 같은 화면이 나옵니다.

docker run --rm hello-world 결과

'Unable to find image'라고 출력되는 이유는 local에 hello-world 이미지가 없어서 나오는 경고입니다.

2번째 줄부터 library에서 hello-world를 pull 하는 것을 의미합니다.

'hello-world' 이미지의 내용은 Hello from Docker부터입니다.

위의 화면이 보인다면 Docker가 설치되었다고 볼 수 있습니다.


Docker 컨테이너 관리 명령어 

Docker의 명령어를 모은 글도 작성을 할 생각이지만 글마다 적절한 실습을 해볼 수 있도록 관련 명령어들을 기록해 두겠습니다.

명령어

1. docker run [옵션] [이미지명] [명령] : 컨테이너 실행

2. docker ps : 실행 중인 Docker 목록 확인

3. docker start [컨테이너 명] : Docker 컨테이너 시작

4. docker stop [컨테이너 명] : Docker 컨테이너 정지

5. docker rm [컨테이너 ID] : Docker 컨테이너 삭제

 

옵션

위의 Docker 명령어와 함께 사용되는 주요 옵션 몇 가지를 기록하겠습니다.

run

1. docker run -it [이미지 명] : -it 또는 --interactive. --tty를 사용하여 컨테이너와의 대화형 셀에 연결합니다. 이 옵션을 사용하면 컨테이너 내에서 입력 및 출력을 사용할 수 있으며, 셀로 들어갈 수 있습니다.

2. docker run --name [컨테이너 이름] [이미지 명] : 컨테이너에 이름을 부여합니다. 이름을 부여하면 컨테이너를 쉽게 식별할 수 있습니다.

3. docker run -e MY_VARIABLE=value [이미지 명] : -e 또는 --env를 사용하여 환경 변수를 설정합니다. 이 옵션을 사용하여 컨테이너 내에서 실행 중인 애플리케이션에 환경 변수를 전달할 수 있습니다.

docker run --rm [이미지 명] : 컨테이너가 종료되면 자동으로 컨테이너를 삭제합니다.

ps

1. docker ps -a : -a 또는 --all을 사용하여 실행 중이지 않은 컨테이너를 포함하여 모든 컨테이너를 표시합니다.

2. docker ps -q : -q 또는 --quiet를 사용하여 컨테이너 ID만 표시합니다.

rm

1. docker rm -f [컨테이너 명] : -f 또는 --force를 사용하여 컨테이너를 강제로 삭제합니다. 컨테이너가 실행 중이더라도 삭제할 수 있습니다.

2. docker rm -v [컨테이너 명] : -v 또는 --volumes를 사용하여 컨테이너와 연결된 볼륨도 함께 삭제합니다.

3. docker rm -l [컨테이너 명] : -l 또는 --link를 사용하여 컨테이너가 다른 컨테이너에 링크되어 있는 경우에도 삭제합니다.


Docker desktop 맛보기

책에 Docker desktop에 대한 내용은 없지만 Docker 설치 후 공부를 하며 Docker desktop을 잠시 사용하였습니다. 간단하게 기록하고 넘어가겠습니다.

cmd 창을 이용하여 아래의 명령어를 실행하면 Alpine이라는 Linux의 경량화 버전을 실행할 수 있습니다.

docker run -it alpine:latest sh

cmd로 docker의 이미지를 실행하여 컨테이너를 생성하면 Docker desktop에서 확인할 수 있습니다.

Docker desktop을 활용하여 container를 정지, 실행, 삭제등을 할 수 있으며 CPU와 memory도 확인할 수 있습니다.

GUI로 docker를 사용할 수 있다는 점에서 쉽게 접근할 수 있습니다.

 

반응형
profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!