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 버전 출력 | 거의 사용 안함 |
참고
해당 포스팅은 그림과 실습으로 배우는 도커&쿠버네티스를 읽고 개인적으로 필요한 내용을 추가 및 정리한 글입니다.
'DevOps > Docker' 카테고리의 다른 글
<Docker> 도커 컨테이너의 실전 사용법 : Volume (0) | 2023.07.05 |
---|---|
<Docker> 도커 컨테이너의 연동 사용법 : Network (0) | 2023.06.07 |
<Docker> 도커 컨테이너의 기본 사용법 : Run (0) | 2023.05.31 |
<Docker> 도커의 구조와 장단점 (0) | 2023.05.18 |
<Docker> 도커란 무엇인가 (1) | 2023.05.16 |