# 도커 입문하기&설치

# 도커란?

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼인데, 여기서 컨테이너란 실행환경을 독립적으로 운용할 수 있도록 격리해주는 기술을 말한다. 실행환경 격리라면 사실 가상머신으로도 가능한 것이지만, 멀쩡한 가상머신을 냅두고도 도커를 쓰는 이유가 있다.

# 도커 vs 가상머신

사실 가상머신은 몇 가지 문제가 있을 수 있는데

### 가상머신의 단점들

오버헤드 문제가 있을 수 있다. 메모리, CPU, 저장공간 등 리소스를 낭비하게 될 수 있다. 여러 가상머신을 돌린다고 치면 매번 가상머신 하나당 운영체제가 매번 새로 설치되어야는 것인데, 즉, 낭비되는 공간이 발생하게 된다는 것이다. 공유할 수 있는 config 파일이 존재하지 않아서, 매번 새로 똑같이 세팅하기 어렵다는 것도 단점이다.

## 도커

도커를 사용하면 하나의 컴퓨터에 여러 가상머신을 설치하고 중복된 운영체제를 설치할 필요가 없다. 또한 구성 파일과 이미지를 사용해서 배포하고자 하는 환경과 같은 환경을 배포하기가 쉽다는 것이다.

# 도커 실습

## 도커 설치하기

아치리눅스 기반 리눅스에 설치하려면

```sh
sudo pacman -S docker
```

명령어로 도커를 설치할 수 있다. 아치 기반이 아니더라도 리눅스에서는 별다른 추가 설정 없이 쉽게 다운로드하고 사용할 수 있다.

다음으로 실행하기 위해

```sh
sudo systemctl status docker # status 확인해서 돌고 있지 않으면
sudo systemctl enable docker.service
sudo systemctl start docker.service
```

데몬이 백그라운드에서 돌아가도록 활성화를 시켜놓을 수 있다.

`sudo`명령 없이 쓰고싶다면

```sh
sudo usermod -aG docker $USER
```

사용자를 도커 그룹에 추가한다. <s>로그아웃했다가 들어와야됨</s>

## 도커 명령어

아래는 아주 기초적인 명령어들인데, 이것들은 추후에 더 다루도록 하겠다.

```sh
docker build # 빌드
docker run # 실행
docker ps # 컨테이너 목록
```
