네이버 클라우드 캠프/Spring Boot & React

[Docker] 도커 시작하기

graph-dev 2023. 8. 9. 11:53
728x90

docker logo

 

도커(Docker)

 도커는 컨테이너 기반의 가상화 플랫폼입니다. 클라우드 서버의 관리, CI/CD, DevOps 등의 기술을 편하게 사용하도록 해줍니다. 도커에는 컨테이너(Container)라는 개념이 있습니다. 이는 설정 파일이나 개발환경, 특정 프로그램, 툴이 설치된 상태를 그대로 실행하는 일종의 상자라고 할 수 있습니다. 도커에서 설정파일, 개발환경, 프로그램, 툴 등을 하나의 이미지(image)로 저장하거나 불러와서 바로 컨테이너화할 수도 있습니다.

 

도커를 설치해보겠습니다. 참고로 리눅스 환경에서 진행합니다. 아래 사이트를 참고하여 작성했습니다.

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

 

Install Docker Engine on Ubuntu

 

docs.docker.com

sudo apt-get update
sudo apt-get install curl
curl https://get.docker.com > docker-install.sh
chmod 755 docker-install.sh
sudo ./docker-install.sh # or sudo sh docker-install.sh

 

도커 명령어

도커(docker)의 시작과 종료와 관련된 명령어입니다.

  • 도커 엔진 시작 
sudo systemctl start docker
 
  • 도커 엔진 종료
sudo systemctl stop docker
 
  • 도커 자동 실행 설정
sudo systemctl enable docker

 

  • 도커 버전 확인
docker -v

 

이번에는 도커 명령어 구조를 살펴보겠습니다. 

docker [상위커맨드] [하위커맨드] 옵션

 

 여기서 상위커맨드는 container, image, volume, network가 있으며, 하위커맨드와 옵션은 상위 커맨드에 따라 달라집니다.
컨테이너를 다루는 명령어 하나를 예를 들어 살펴보겠습니다.

 


컨테이너 명령어

docker container [하위명령어] [옵션]

 

하위커맨드로는 start, stop, create, run, exec, ls, cp, commit 등이 있습니다. 각각 살펴보면 다음과 같습니다.

  • start: 컨테이너의 실행
  • stop: 컨테이너 종료
  • create: 이미지로부터 컨테이너 생성합니다.
  • run: 이미지를 다운로드해서 컨테이너를 생성하고, 컨테이너를 실행하는 아래의 과정을 한번에 수행합니다.
    • docker image pull(이미지 다운로드)
    • docker container create(컨테이너 생성)
    • docker container start(컨테이너 실행)

 

  • exec: 실행 중인 컨테이너 속에 접속하거나 프로그램을 실행합니다.
  • ls: 컨테이너의 목록을 표출합니다.
  • cp: 컨테이너와 도커 간의 파일을 복사합니다.
  • commit: 현재 컨테이너를 이미지로 변환합니다.

 

이미지 명령어

docker image [하위커맨드] [옵션]
이번에는 이미지(image) 명령어를 살펴보겠습니다. 하위커맨드로는 pull, rm, ls, build 등이 있습니다. 각각 살펴보겠습니다.
  • pull: 도커 허브 등 레포지토리에서 이미지를 내려받습니다.
  • rm: 이미지 삭제합니다.
  • ls: 이미지 목록 표출합니다.
  • build: 도커 이미지를 생성합니다.

 

볼륨 명령어

docker volume [하위명령어] [옵션]

이제 볼륨(저장소) 관련 명령어를 살펴보겠습니다. 하위커맨드로는 create, inspect, ls, prune, rm 등이 있습니다.

  • create: 볼륨(저장소)을 생성합니다.
  • inspect: 볼륨 상세 정보를 표출합니다.
  • ls: 볼륨 목록을 보여줍니다.
  • prune: 현재 마운트되지 않아서 사용하지 않는 볼륨을 모두 삭제합니다.
  • rm: 지정한 볼륨을 삭제합니다.

 

 

네트워크 명령어

docker network [하위명령어] [옵션]

 마지막으로 네트워크 명령어를 보겠습니다. 하위커맨드로는 connect, disconnect, create, inspect, ls, prune, rm 등을 사용할 수 있습니다.

  • connect: 컨테이너를 도커 네트워크에 연결합니다.
  • disconnect: 컨테이너를 도커 네트워크에서 해제합니다.
  • create: 도커 네트워크를 생성합니다.
  • inspect: 도커 네트워크 상세 정보를 보여줍니다.
  • ls: 도커 네트워크 목록을 보여줍니다.
  • prune: 현재 네트워크가 연결되어 있지 않는 모든 네트워크를 삭제합니다.(가지치기 느낌)
  • rm: 지정한 네트워크를 삭제합니다.

 

docker run 명령어 옵션

 추가로 아까 보았던 docker run 명령어를 살펴보겠습니다.  이 명령어는 자주 사용하므로 잘 기억해둡시다.

  • --name: 컨테이너의 이름 지정
  • -d: 백그라운드 실행
  • -p: 포트번호 지정(인바운드포트번호: 컨테이너의 포트번호)
  • --net: 연결할 도커 네트워크 지정
  • -e: 환경변수 지정
  • -v: 볼륨이름(도커의 경로명):컨테이너 마운트 경로