본문 바로가기

DevOps/Docker

<Docker> 도커 사용을 위한 준비

1. 소개

* 도커를 사용하려면

 - 도커를 사용하려면 먼저 도커 엔진이라는 무료 소프트웨어를 설치해야 한다. 이를 위해서는 리눅스 운영체제가 필요하다. 하지만 리눅스 운영체제를 사용하고 있지 않아도, 가상머신이나 클라우드 환경에 도커를 설치하여 사용할 수 있다.

 

 - 또한 윈도우나 MacOS 운영체제를 사용하는 경우에도 도커 데스크탑을 사용하여 도커를 활용할 수 있다. 이번 글에서는 도커 데스크탑을 활용하는 방법을 주로 설명하려고 한다.

 


 - 도커 데스크탑은 사용자에게 보이지 않는 가상의 리눅스 환경을 만들고, 이 환경에서 도커 엔진을 구동한다. 도커 데스크탑을 사용하면, 가상화 소프트웨어나 리눅스 운영체제를 별도로 설치하고 관리할 필요 없이, 도커를 간편하게 사용할 수 있게 되는 것이다.

 

* 도커 설치

 - 도커 데스크탑은 Docker 사이트에서 무료로 설치할 수 있다.

도커 공식 홈페이지

 - 사용하는 컴퓨터의 운영체제에 맞는 버전을 선택하여 설치하면 된다. 필자는 M1 맥북을 사용하므로 Apple Chip을 클릭하여 설치하였다.

 

 - 설치가 완료되면 도커를 실행하면 최초에 튜토리얼이 표시되지만, 이는 스킵하고 넘어가도 좋다.

 

 

 - LNB를 통해 컨테이너 목록, 이미지 목록, 볼륨 목록을 볼 수 있다. 컨테이너 목록에서는 컨테이너들의 상태를 확인할 수 있고, 이미지 목록에서는 내려받은 도커 이미지 목록을 모두 확인할 수 있다.

 

 

 - 설정에서는 도커의 여러가지 설정을 확인하고 변경할 수 있다. 필자는 도커 테마를 다크모드로 두고 사용하고 있다. 그리고 컴퓨터가 켜졌을 때 자동으로 실행되도록 "Start Docker Desktop when you log in"을 활성화 하였다.

 

 - 설정을 변경했다면 반드시 "Apply & restart" 버튼을 클릭하여 적용하도록 하자.

 

2. 사용

* 도커 엔진 시작 및 종료

 - 도커 데스크톱을 설치한 컴퓨터에서 도커를 시작하는 방법은 당연하게도 도커데스크톱의 실행이다. 도커 데스크톱 아이콘을 클릭하면 자동으로 도커엔진은 구동된다.

 

 - 도커 엔진을 종료하려면 도커데스크탑을 종료해야한다. Mac 의 경우에는 상태막대에서 도커를 클릭하여 "Quit Docker Desktop"을 클릭하며면 된다.

 

 - 참고로 컨테이너를 실행 중이 아니라면 도커엔진은 컴퓨터의 리소스를 거의 차지하지 않으므로 실행시켜두어도 괜찮다.

 

* 컨테이너 기본 사용

 - 컨테이너 사용의 기본은 도커 명령어이다.

 

docker <상위커맨드> <하위커맨드> <대상>

 

 - docker 명령어 뒤에 오는 '무엇을' '어떻게' 에 해당하는 부분을 '커맨드'라고 한다. 커맨드는 상위 커맨드와 하위 커맨드로 구성되며, 각각 '무엇을' '어떻게'에 해당한다. 상위 커맨드는 'container', 'image'와 같은 대상의 종류가 들어간다. 커맨드 뒤에는 '대상'이 들어가며 컨테이너 명이나 이미지 명 등의 구체적인 이름이 들어간다.

 

docker 커맨드 (옵션) 대상 (인자)

 

 - 대상 외에도 '옵션'과 '인자'라는 추가 정보도 붙일 수 있다.

 

 - 컨테이너를 실행시키려면 아래의 두 가지 방법이 있다.

 

docker container run
docker run

 

- 역사적 이유로 start나 run 처럼 'container'를 붙이지 않아도 실행 가능한 명령어가 있으며, 관례상 이쪽을 사용하는 경우가 더 많다. 

 

* 대표 명령어

 - 앞서 커맨드가 어떤식으로 이루어지는지 파악했으니 대표적인 도커의 명령어를 알아보자. 뒤에 나오는 장에서 다시 자세하게 설명할 것이므로 어떤 명령어가 있는지 정도로만 파악하자.

 

 - 먼저 컨테이너 조작 관련 커맨드를 알아보자. 컨테이너를 다루기 위해 사용하며, 실행이나 종료하는 등의 동작을 수행한다.

 

docker container <하위커맨드> <옵션>

 

하위 커맨드 내용 생략 가능 여부 주요 옵션
start 컨테이너 실행 O -i
stop 컨테이너 정지 O 거의 사용 안함
create 이미지로 부터 컨테이너 생성 O —name -e -p -v
run 도커 이미지를 받고 컨테이너 생성 및 실행 O —name -e -p -v -d -i -t
rm 정지 상태의 컨테이너 삭제 O -f -v
exec 실행 중인 컨테이너 속에서 프로그램 실행 O -i -t
ls 컨테이너 목록 출력 docker ps -a
cp 도커 컨테이너와 도커 호스트 간 파일 복사 O 거의 사용 안함
commit 도커 컨테이너를 이미지로 변환 O 거의 사용 안함

 

- 다음은 이미지 조작 관련 커맨드를 보자. 이미지를 받거나 검색하는 등의 동작을 수행한다.

 

docker image <하위커맨드> <옵션>

 

하위 커맨드 내용 생략 가능 여부 주요 옵션
pull 도커 허브 등의 리포지토리에서 이미지를 내려받음 O 거의 사용 안함
rm 도커 이미지를 삭제 docker rmi 거의 사용 안함
ls 내려 받은 이미지 목록 출력 X 거의 사용 안함
build 도커 이미지를 생성 O -t

 

 - 이번에는 볼륨 조작 관련 커맨드이다. 볼륨 생성, 목록 확인, 삭제 등 컨테이너에 마운트 가능한 스토리지인 볼륨과 관련된 기능을 수행한다.

 

docker volume <하위커맨드> <옵션>

 

하위 커맨드 내용 생략 가능 여부 주요 옵션
create 볼륨 생성 X —name
inspect 볼륨의 상세 정보 출력 X 거의 사용 안함
ls 볼륨의 목록 출력 X -a
prune 현재 마운트되지 않은 볼륨 모두 삭제 X 거의 사용 안함
rm 지정한 볼륨 삭제 X 거의 사용 안함

 

 - 컨테이너의 네트워크와 관련된 기능을 실행하는 커맨드는 아래와 같다.

 

docker network <하위커맨드> <옵션>

 

하위 커맨드 내용 생략 가능 여부 주요 옵션
connect 컨테이너를 도커 네트워크에 연결 X 거의 사용 안함
disconnect 컨테이너의 도커 네트워크 연결을 해제 X 거의 사용 안함
create 도커 네트워크 생성 X 거의 사용 안함
inspect 도커 네트워크의 상세 정보 출력 X 거의 사용 안함
ls 도커 네트워크 목록 출력 X 거의 사용 안함
prune 현재 컨테이너가 접속하지 않은 네트워크 모두 삭제 X 거의 사용 안함
rm 지정한 네트워크 삭제 X 거의 사용 안함

 

 - 상위 커맨드 없이 단독으로 쓰이는 특수한 커맨드도 존재한다.

단독 커맨드 내용 주요 옵션
login 도커 레지스트리에 로그인 -u -p
logout 도커 레지스트리에 로그아웃 거의 사용 안함
search 도커 레지스트리를 검색 거의 사용 안함
version 도커 엔진 및 CLI 버전 출력 거의 사용 안함

 


참고

 

 해당 포스팅은 그림과 실습으로 배우는 도커&쿠버네티스를 읽고 개인적으로 필요한 내용을 추가 및 정리한 글입니다.

 

 

 

그림과 실습으로 배우는 도커 & 쿠버네티스 - YES24

컨테이너나 도커를 도통 이해하기 어려운 분들을 위한 본격 도커 입문서!이 책은 컨테이너 기술이 어렵게 느껴지는 엔지니어나 백엔드 기술에 자신이 없는 분들을 위한 도커 입문서다. 자세한

www.yes24.com