> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/docs.edgegap.com-ko/docs/tools-and-integrations/container/docker.md).

# Docker란 무엇인가

Edgegap에서는 전 세계에 걸쳐 부하를 고르게 분산하기 위해 컨테이너를 사용합니다. 게임이 몇 밀리초 안에 시작되어야 하므로, 컨테이너는 속도를 염두에 두고 그에 맞게 구축되어야 합니다. 이제 도커 이미지, 즉 컨테이너라고도 불리는 것을 만드는 방법을 안내해 드리겠습니다.

{% hint style="info" %}
컨테이너를 빠르게 익히고 싶다면, 우리는 다음을 강력히 추천합니다 [이 짧은 동영상](https://www.youtube.com/watch?v=J0NuOlA2xDc\&ab_channel=Coderized).
{% endhint %}

<figure><img src="/files/b9696a06a90b9b75c719b628fb11388fe16c9d42" alt=""><figcaption></figcaption></figure>

### **Docker란 무엇인가요?**

* Docker는 OS 수준 가상화를 가능하게 하는 PaaS(서비스형 플랫폼)입니다.

### **Docker Run 명령이란 무엇인가요?**

* docker run 명령은 이미지로부터 컨테이너를 생성하여 Docker 데스크톱 엔진이 해당 컨테이너를 실행할 수 있게 해줍니다.

### **해보세요**

먼저 첫 번째 컨테이너를 만들기 위해 컴퓨터에 필요한 도구를 추가하는 것부터 시작하겠습니다.

Docker Desktop에 명시된 설치 절차를 따라가면 됩니다.

다음을 실행 중이라면 [Windows 10 Pro](https://docs.docker.com/docker-for-windows/install/) 다음을 실행 중이라면 [Windows 10 Home Edition](https://docs.docker.com/docker-for-windows/install-windows-home/) 다음을 실행 중이라면 [macOS](https://docs.docker.com/docker-for-mac/install/)

이제 로컬 머신에서 Docker가 실행되므로, 간단한 hello world부터 시작할 수 있습니다.

```sh
docker run -d -p 80:80 --name speedtest edgegap/speedtest-edge
```

명령 프롬프트로 이동하여 위의 명령을 입력하면 됩니다.

단계는 자동으로 진행됩니다.

1. Edgegap 저장소에서 컨테이너 다운로드(처음 한 번만)
2. 컨테이너 시작
3. 이름은 speedtest가 됩니다(--name)
4. 컨테이너를 외부에 노출하려면 docker run 명령에서 이를 지정해야 합니다. 이 예시에서는 외부의 80번 포트를 컨테이너에서 노출된 80번 포트에 연결하도록 노출합니다(-p)
5. 웹 브라우저에서 다음 주소로 접속해 시도해 볼 수 있습니다 [http://localhost](http://localhost/)
6. 자, 첫 번째 컨테이너를 실행했습니다.

이제 컨테이너가 실행 중이므로, 이를 조작할 수 있습니다. 다음 세션에서는 컨테이너를 다시 시작하고, 중지하고, 네트워크를 확인해 보겠습니다. 먼저 명령줄에서 docker 엔진에서 실행 중인 항목을 로컬로 확인하려면 다음을 입력해야 합니다.

```sh
docker ps
```

비슷한 내용을 볼 수 있을 것입니다.

```
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                NAMES
dbf4d3734111        edgegap/speedtest-edge   "docker-php-entrypoi…"   29 minutes ago      Up 29 minutes       0.0.0.0:80->80/tcp   speedtest
```

컴퓨터에서 실행 중인 컨테이너 정보를 시각적으로 확인할 수 있습니다. 이 목록에는 하나 이상이 실행 중일 수 있습니다.

`docker ps` 는 간단한 명령입니다. 앞으로 자주 사용하게 될 것입니다.

실행 중인 컨테이너에 대해 더 많은 정보가 필요하다고 해봅시다. 다음 명령을 실행하여 docker 엔진에 컨테이너에 대한 모든 세부 정보를 요청할 수 있습니다:

```sh
docker container inspect speedtest
```

docker 엔진이 생성한 내부 네트워크를 보고 싶다면 다음 명령을 실행하면 됩니다.

```sh
docker network ls
```

다음과 비슷한 결과가 나올 것입니다:

```
NETWORK ID          NAME                DRIVER              SCOPE
67b24038b9ca        bridge              bridge              local
6f7fe43a489d        host                host                local
3d80cdb86a7e        none                null                local
```

네트워크 구성을 더 자세히 살펴보고 싶다면 다음 명령을 실행할 수 있습니다:

```sh
docker network inspect 67b24038b9ca
# 여기서 678b24038b9ca는 컨테이너에 연결된 네트워크입니다
```

Docker 중지

이제 컨테이너를 시작했으므로 다음을 사용해 중지할 수 있습니다:

```sh
docker container stop speedtest
```
