# 시스템 별 도커(docker) 설치 방법

{% embed url="<https://paypal.me/shop2002>" %}
donation
{% endembed %}

{% hint style="info" %}
**2022년 NHN Cloud&#x20;**<mark style="color:red;">**무료**</mark>**&#x20;교육일정** : <https://doc.skill.or.kr/2022-NHN-Cloud-Education>
{% endhint %}

{% hint style="warning" %}
**2022년 NHN Cloud&#x20;**<mark style="color:red;">**행사/프로모션**</mark>**&#x20;정보 공유** : <https://doc.skill.or.kr/2022-NHN-Cloud-Event-Promotion>
{% endhint %}

## 1. 윈도우 시스템 도커(docker) 설치 방법   &#x20;

### 1.1 윈도우용 도커 데스크탑이란?   &#x20;

> Windows 용 Docker Desktop은 Windows 10에서 실행되도록 설계된 Docker입니다. Docker화된 앱을 빌드, 배송 및 실행하기위한 사용하기 쉬운 개발 환경을 제공하는 기본 Windows 애플리케이션입니다. Windows 용 Docker Desktop은 Windows 네이티브 Hyper-V 가상화 및 네트워킹을 사용하며 Windows에서 Docker 앱을 개발하는 가장 빠르고 안정적인 방법입니다. Windows 용 Docker Desktop은 Linux 및 Windows Docker 컨테이너 실행을 모두 지원합니다.

### 1.2 윈도우용 도커 데스크탑 다운로드

> [홈페이지 다운로드 ](https://hub.docker.com/editions/community/docker-ce-desktop-windows): `Docker Hub (Docker Desktop for Windows) 사이트`     &#x20;
>
> [윈도우용 도커 데스크탑 다운로드](https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe) : `Docker Desktop Installer.exe`

### 1.3 설치 방법    &#x20;

> 다운로드 한 `Docker Desktop Installer.exe` 더블 클릭 하여 설치 프로그램을 실행합니다.
>
> 설치가 완료되면 Docker가 자동으로 시작됩니다. ![](https://d1q6f0aelx0por.cloudfront.net/icons/whale-x-win.png)알림 영역 의 고래 는 Docker가 실행 중이며 터미널에서 액세스 할 수 있음을 나타냅니다.

### 1.4 실행 방법   &#x20;

> PowerShell과 같은 명령 줄 터미널을 열고 몇 가지 Docker 명령을 사용해보십시오!
>
> * `docker version`버전을 확인하려면 실행하십시오 .
> * 실행 `docker run hello-world`하여 Docker가 이미지를 가져오고 실행할 수 있는지 확인합니다.

### 1.5 Windows 10에 Linux용 Windows 하위 시스템 설치 가이드(wsl2kernel)    &#x20;

![](https://674794822-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXjvaK4Gw77FbwOuHWJ%2F-M_tM939YxTmwaaiuL2r%2F-M_tOqmTDDf7w9rVgieu%2Fimage.png?alt=media\&token=c113a117-c88c-4823-94bd-e57ccb4c1aad)

#### 1.5.1 Linux 커널 업데이트 패키지 다운로드 ([참고사이트](https://docs.microsoft.com/ko-kr/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package))   &#x20;

> 1. 최신 패키지 다운로드 : [x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)   &#x20;
> 2. 이전 단계에서 다운로드한 업데이트 패키지를 실행합니다. (실행하려면 두 번 클릭 - 관리자 권한을 요구하는 메시지가 표시되면 '예'를 선택하여 이 설치를 승인합니다.)

#### 1.5.2 Linux 배포 설치    &#x20;

> &#x20;1\. [Microsoft Store](https://aka.ms/wslstore)를 열고 즐겨 찾는 Linux 배포를 선택합니다.

![그림. Microsoft Store 사이트   ](https://674794822-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXjvaK4Gw77FbwOuHWJ%2F-M_tQOL-sTPq8PIRFKZL%2F-M_tR51zIyOz_PPSrRcU%2Fimage.png?alt=media\&token=cb67aa76-62da-4b83-b85c-deeeb5082487)

> 각 배포에 대한 Microsoft Store 페이지를 여는 링크는 다음과 같습니다.
>
> * [Ubuntu 16.04 LTS](https://www.microsoft.com/store/apps/9pjn388hp8c9)
> * [Ubuntu 18.04 LTS](https://www.microsoft.com/store/apps/9N9TNGVNDL3Q)
> * [Ubuntu 20.04 LTS](https://www.microsoft.com/store/apps/9n6svws3rx71)
> * [openSUSE Leap 15.1](https://www.microsoft.com/store/apps/9NJFZK00FGKV)
> * [SUSE Linux Enterprise Server 12 SP5](https://www.microsoft.com/store/apps/9MZ3D1TRP8T1)
> * [SUSE Linux Enterprise Server 15 SP1](https://www.microsoft.com/store/apps/9PN498VPMF3Z)
> * [Kali Linux](https://www.microsoft.com/store/apps/9PKR34TNCV07)
> * [Debian GNU/Linux](https://www.microsoft.com/store/apps/9MSVKQC78PK6)
> * [Fedora Remix for WSL](https://www.microsoft.com/store/apps/9n6gdm4k2hnc)
> * [Pengwin](https://www.microsoft.com/store/apps/9NV1GV1PXZ6P)
> * [Pengwin Enterprise](https://www.microsoft.com/store/apps/9N8LP0X93VCP)
> * [Alpine WSL](https://www.microsoft.com/store/apps/9p804crf0395)

> 2\. 배포 페이지에서 "가져오기"를 선택합니다.

![그림. Microsoft Store 사이트   ](https://674794822-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXjvaK4Gw77FbwOuHWJ%2F-M_tQOL-sTPq8PIRFKZL%2F-M_tRN-64LCZ7zMBxAoK%2Fimage.png?alt=media\&token=691d9d8b-afa5-4fa5-935d-c4341f0b7aa6)

> 3\.  [새 Linux 배포를 위한 사용자 계정 및 암호를 만들어야](https://docs.microsoft.com/ko-kr/windows/wsl/user-support) 합니다.

![그림. Ubuntu 계정 생성 및 패스워드 입력   ](https://674794822-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXjvaK4Gw77FbwOuHWJ%2F-M_tQOL-sTPq8PIRFKZL%2F-M_tRiMQtC8bnsmw76ri%2Fimage.png?alt=media\&token=c662df09-44d2-4f63-a0f8-61292f271813)

### 1.6 문제 해결  &#x20;

> * **0x80070003 오류로 인한 설치 실패**
>   * Linux용 Windows 하위 시스템은 시스템 드라이브(일반적으로 `C:` 드라이브)에서만 실행됩니다. 배포가 시스템 드라이브에 저장되어 있는지 확인합니다.
>   * **설정** -> \*\*시스템 -->**스토리지** -> **더 많은 스토리지 설정을 차례로 엽니다. 새 콘텐츠가 저장된 위치를 변경합니다.**

> * **0x8007019e 오류로 인한 WslRegisterDistribution 실패**
>   * 선택적인 Linux용 Windows 하위 시스템 구성 요소가 실행되지 않습니다.
>   * **제어판** -> **프로그램 및 기능** -> **Windows 기능 사용/사용 안 함** 을 차례로 열어 **Linux용 Windows 하위 시스템** 을 선택하거나 이 문서의 시작 부분에서 설명한 PowerShell cmdlet을 사용합니다.

> * **0x80070003 오류 또는 0x80370102 오류로 인해 설치하지 못했습니다.**
>   * 컴퓨터 BIOS 내에서 가상화를 사용하도록 설정했는지 확인합니다. 이 방법에 대한 지침은 컴퓨터마다 다르며, CPU 관련 옵션에 있을 가능성이 높습니다.
>   * WSL2를 사용하려면 CPU가 Intel Nehalem 프로세서(Intel Core 1세대) 및 AMD Opteron에 도입된 SLAT(두 번째 수준 주소 변환) 기능을 지원해야 합니다. 이전 CPU(예: Intel Core 2 Duo)는 Virtual Machine 플랫폼을 성공적으로 설치하더라도 WSL2를 실행할 수 없습니다.

> * **업그레이드 시도 중 오류: `Invalid command line option: wsl --set-version Ubuntu 2`**
>   * Linux용 Windows 하위 시스템을 사용하도록 설정했고 Windows 빌드 버전 18362 이상을 사용하고 있는지 확인합니다. WSL을 실행하도록 하려면 관리자 권한(`Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux`)으로 PowerShell 프롬프트에서 이 명령을 실행합니다.

> * **가상 디스크 시스템 제한으로 인해 요청한 작업을 완료할 수 없습니다. 가상 하드 디스크 파일은 압축이 풀려 있는 상태이고 암호화되지 않아야 하며 스파스가 아니어야 합니다.**
>   * Linux 배포판의 프로필 폴더를 열어서 "내용 압축"과 "내용 암호화"를 선택 취소합니다. 이는 Windows 파일 시스템의 `USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited...` 같은 폴더에 있을 것입니다.
>   * 이 Linux 배포판 프로필에는 LocalState 폴더가 있을 것입니다. 이 폴더를 마우스 오른쪽 단추로 클릭하여 옵션 메뉴를 표시합니다. 속성 > 고급을 선택하고 "내용을 압축하여 디스크 공간 절약" 및 "데이터 보호를 위해 내용을 암호화" 확인란이 선택 취소되어 있는지 확인합니다(선택하지 않음). 이를 현재 폴더 또는 모든 하위 폴더와 파일에만 적용할지 묻는 메시지가 표시되면 압축 플래그만 지우도록 "이 폴더만"을 선택합니다. 그러면 `wsl --set-version` 명령이 작동할 것입니다.

> * **cmdlet, 함수, 스크립트 파일 또는 실행 프로그램의 이름에는 'wsl'이라는 단어가 들어갈 수 없습니다.**
>   * [Linux용 Windows 하위 시스템 옵션 구성 요소가 설치되었는지](https://docs.microsoft.com/ko-kr/windows/wsl/install-win10#step-3---enable-virtual-machine-feature) 확인하세요. 또는 ARM64 디바이스를 사용 중이고 PowerShell에서 이 명령을 실행하는 경우 이 오류가 표시됩니다. [PowerShell Core](https://docs.microsoft.com/ko-kr/powershell/scripting/install/installing-powershell-core-on-windows) 또는 명령 프롬프트에서 `wsl.exe`를 대신 실행하세요.

> * **오류: 이 업데이트는 Linux용 Windows 하위 시스템을 사용하는 머신에만 적용됩니다.**
>   * Linux 커널 업데이트 MSI 패키지를 설치하려면 WSL이 필요하며, 먼저 이를 사용하도록 설정해야 합니다. 실패하면 `This update only applies to machines with the Windows Subsystem for Linux` 메시지가 표시됩니다.
>   * 이 메시지가 표시되는 세 가지 가능한 원인은 다음과 같습니다.
>   * WSL 2를 지원하지 않는 이전 버전의 Windows를 아직 사용하고 있습니다. 버전 요구 사항 및 업데이트에 대한 링크는 2단계를 참조하세요.
>   * WSL을 사용하도록 설정되지 않았습니다. 1단계로 돌아가서 머신에서 선택적 WSL 기능을 사용하도록 설정되어 있는지 확인해야 합니다.
>   * WSL을 사용하도록 설정한 후에는 다시 부팅해야 적용됩니다. 머신을 다시 부팅하고 다시 시도하세요.

> * **오류: WSL 2에는 커널 구성 요소에 대한 업데이트가 필요합니다. 자세한 내용은** [**https://aka.ms/wsl2kernel**](https://aka.ms/wsl2kernel) **을 방문하세요.**
>   * Linux 커널 패키지가 %SystemRoot%\system32\lxss\tools 폴더에 없는 경우 이 오류가 발생합니다. 이러한 설치 지침의 4단계에서 Linux 커널 업데이트 MSI 패키지를 설치하여 이 문제를 해결하세요. '프로그램 추가/제거'에서 MSI를 제거하고 다시 설치해야 할 수 있습니다.

> * **오류: ubuntu 의 root or user 패스워드를 잃어 버렸을때.**
>
>   * 윈도우 터미널(Powershell or cmd) 에서 기본 사용자를 변경
>
>   &#x20;       `>  ubuntu config --default-user root`
>
>   * 윈도우 터미널(Powershell or cmd) 에서 ubuntu 접속 후 비밀번호를 변경
>
>   &#x20;       `# passwd ubuntu or root` 사용자 입력 후 비밀번호 변경 &#x20;
>
>   * wsl distro 별 기본 사용자 변경
>
>   &#x20;       `# Ubuntu : > ubuntu config --default-user root`\
>   `# openSUSE Leap 42: > openSUSE-42 config --default-user root`\
>   `# SUSE Linux: > SLES-12 config --default-user root`\
>   `# Debian: > debian config --default-user root`\
>   `# Kali Linux: > kali config --default-user root`

### 1.7 출처 : [doc.microsoft.com](https://docs.microsoft.com/ko-kr/windows/wsl/install-win10#troubleshooting-installation) / [hub.docker.com](https://hub.docker.com/editions/community/docker-ce-desktop-windows)

## 2. 맥 시스템 도커(docker) 설치 방법   &#x20;

### 2.1 맥용 도커 데스크탑이란?   &#x20;

> Mac 용 Docker Desktop은 Mac에서 Dockerized 앱을 빌드, 디버깅 및 테스트하기위한 설치가 쉬운 데스크톱 앱입니다. Mac 용 Docker Desktop은 Mac OS Hypervisor 프레임 워크, 네트워킹 및 파일 시스템과 긴밀하게 통합 된 완전한 개발 환경입니다. Docker Desktop-Mac은 Mac에서 Docker를 실행하는 가장 빠르고 안정적인 방법입니다.

### 2.2 맥용 도커 데스크탑 다운로드

> [홈페이지 다운로드](https://hub.docker.com/editions/community/docker-ce-desktop-mac) : `Docker Hub (Docker Desktop for Mac) 사이트`      &#x20;
>
> 맥용 도커 데스크탑 다운로드([Mac with Intel chip](https://desktop.docker.com/mac/stable/amd64/Docker.dmg) / [Mac with Apple chip](https://desktop.docker.com/mac/stable/arm64/Docker.dmg)) : `Docker.dmg` &#x20;

### 2.3 시스템 요구 사항    &#x20;

> [요구 사항 목록 참조](https://docs.docker.com/docker-for-mac/install/#system-requirements) 확인   &#x20;

### 2.4 설치 방법  &#x20;

> 다운로드 한 `Docker.dmg` 을 설치 프로세스를 시작하십시오.
>
> 설치가 완료되고 Docker가 시작되면 상단 상태 표시 줄의 고래가 Docker가 실행 중이며 터미널에서 액세스 할 수 있음을 표시합니다.
>
> ![메뉴 모음에서 고래](https://d1q6f0aelx0por.cloudfront.net/icons/whale-in-menu-bar.png)

### 2.5 실행 방법   &#x20;

> 명령 줄 터미널을 열고 몇 가지 Docker 명령을 시도합니다.
>
> * 실행 `docker version`하여 최신 릴리스가 설치되어 있는지 확인하십시오.
> * 실행 `docker run hello-world`하여 Docker가 이미지를 가져오고 예상대로 실행되는지 확인합니다.

### 2.6 출처 : [hub.docker.com](https://hub.docker.com/editions/community/docker-ce-desktop-mac)

## 3. Centos 7.8 시스템 도커(docker) 설치&#x20;

### 3.1 도커(docker) 설치 및 확인&#x20;

{% code title="Centos 7.x 버전은 아래와 같이 설치" %}

```
// Docker 설치에 필요한 패키지 설치
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

// Docker 저장소 추가
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

// Docker 설치
$ sudo yum install -y docker-ce docker-ce-cli containerd.io

// Docker 서비스 시작
$ sudo systemctl start docker
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

// Docker 확인 
$ sudo docker run hello-world
```

{% endcode %}

### 3.2 도커 컴포즈(docker-compose) 설치 및&#x20;

{% code title="Docker-compose 설치 및 확인" %}

```bash
// Docker-compose download   
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

// Docker-compose 권한 설정
$ sudo chmod +x /usr/local/bin/docker-compose

// Link 설정   
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

// docker-compose 버전 확인
$ docker-compose --version
docker-compose version 1.29.2, build 1110ad01
```

{% endcode %}

### 3.3 출처 : [doc.toast.com](https://docs.toast.com/ko/Container/Container%20Registry/ko/user-guide/)  / [docs.docker.com](https://docs.docker.com/compose/install/)

## 4. Ubuntu 18.04/20.04 TLS 시스템 도커(docker) 설치&#x20;

### 4.1 도커(docker) 설치 및 확인   &#x20;

```
// apt 인덱스 업데이트
$ sudo apt-get update

// repository over HTTPS를 사용하기 위한 패키지 설치
$ sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

// GPG Key를 추가하고 확인
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

// 저장소 추가하고 apt 인덱스 업데이트
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update

// Docker 설치
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

// Docker 서비스 시작
$ sudo systemctl start docker
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

// Docker 확인
$ sudo docker run hello-world
```

### 4.2 도커 컴포즈(docker-compose) 설치 및&#x20;

{% code title="Docker-compose 설치 및 확인" %}

```bash
// Docker-compose download   
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

// Docker-compose 권한 설정
$ sudo chmod +x /usr/local/bin/docker-compose

// Link 설정   
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

// docker-compose 버전 확인
$ docker-compose --version
docker-compose version 1.29.2, build 1110ad01
```

{% endcode %}

### 4.3 출처 : [doc.toast.com](https://docs.toast.com/ko/Container/Container%20Registry/ko/user-guide/) / [docs.docker.com](https://docs.docker.com/compose/install/)

## 5. docker to start on boot

### 5.1 Docker Service start  &#x20;

{% code title="도커 서비스 시작" %}

```bash
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
```

{% endcode %}

### 5.2 Docker Service stop

{% code title="도커 서비스 중지" %}

```bash
$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service
```

{% endcode %}

{% hint style="info" %}
**2022년 NHN Cloud&#x20;**<mark style="color:red;">**무료**</mark>**&#x20;교육일정** : <https://doc.skill.or.kr/2022-NHN-Cloud-Education>
{% endhint %}

{% hint style="warning" %}
**2022년 NHN Cloud&#x20;**<mark style="color:red;">**행사/프로모션**</mark>**&#x20;정보 공유** : <https://doc.skill.or.kr/2022-NHN-Cloud-Event-Promotion>
{% endhint %}

{% embed url="<https://paypal.me/shop2002>" %}
donation
{% endembed %}
