Windows의 Docker 엔진Docker Engine on Windows

Docker 엔진과 클라이언트는 Windows에 포함 되지 않으며 개별적으로 설치 하 고 구성 해야 합니다.The Docker Engine and client aren't included with Windows and need to be installed and configured individually. 또한 Docker 엔진에서는 여러 사용자 지정 구성을 허용합니다.Furthermore, the Docker Engine can accept many custom configurations. 몇 가지 예로 디먼이 들어오는 요청을 수락하는 방법, 기본 네트워킹 옵션 및 디버그/로그 설정 등을 구성할 수 있습니다.Some examples include configuring how the daemon accepts incoming requests, default networking options, and debug/log settings. Windows에서는 이러한 구성을 구성 파일에 지정하거나 Windows 서비스 제어 관리자를 사용하여 지정할 수 있습니다.On Windows, these configurations can be specified in a configuration file or by using Windows Service control manager. 이 문서에서는 Docker 엔진을 설치 하 고 구성 하는 방법에 대해 자세히 설명 하 고 자주 사용 하는 구성의 몇 가지 예를 제공 합니다.This document details how to install and configure the Docker Engine, and also provides some examples of commonly used configurations.

Docker 설치Install Docker

Windows 컨테이너 사용을 위해서는 Docker가 필요 합니다.You need Docker in order to work with Windows Containers. Docker는 Docker 엔진(dockerd.exe) 및 Docker 클라이언트(docker.exe)로 구성됩니다.Docker consists of the Docker Engine (dockerd.exe), and the Docker client (docker.exe). 모든 기능을 설치 하는 가장 쉬운 방법은 빠른 시작 가이드를 사용 하 여 모든 작업을 설정 하 고 첫 번째 컨테이너를 실행 하는 데 도움을 드립니다.The easiest way to get everything installed is in the quickstart guide, which will help you get everything set up and run your first container.

스크립팅된 설치의 경우 스크립트를 사용 하 여 DOCKER EE 설치를 참조 하세요.For scripted installations, see Use a script to install Docker EE.

Docker를 사용할 수 있으려면 먼저 컨테이너 이미지를 설치 해야 합니다.Before you can use Docker, you'll need to install the container images. 자세한 내용은 컨테이너 기본 이미지에 대 한 문서를 참조 하세요.For more information, see docs for our container base images.

구성 파일을 사용 하 여 Docker 구성Configure Docker with a configuration file

Windows에서 Docker 엔진을 구성하는 기본 방법은 구성 파일을 사용하는 것입니다.The preferred method for configuring the Docker Engine on Windows is using a configuration file. 구성 파일은 'C:\ProgramData\Docker\config\daemon.json'에서 찾을 수 있습니다.The configuration file can be found at 'C:\ProgramData\Docker\config\daemon.json'. 이 파일이 없는 경우 만들 수 있습니다.You can create this file if it doesn't already exist.

참고

사용할 수 있는 모든 Docker 구성 옵션이 Windows의 Docker에 적용 되는 것은 아닙니다.Not every available Docker configuration option applies to Docker on Windows. 다음 예제에서는 적용 되는 구성 옵션을 보여 줍니다.The following example shows the configuration options that do apply. Docker 엔진 구성에 대 한 자세한 내용은 docker 데몬 구성 파일을 참조 하세요.For more information about Docker Engine configuration, see Docker daemon configuration file.

{
    "authorization-plugins": [],
    "dns": [],
    "dns-opts": [],
    "dns-search": [],
    "exec-opts": [],
    "storage-driver": "",
    "storage-opts": [],
    "labels": [],
    "log-driver": "", 
    "mtu": 0,
    "pidfile": "",
    "data-root": "",
    "cluster-store": "",
    "cluster-advertise": "",
    "debug": true,
    "hosts": [],
    "log-level": "",
    "tlsverify": true,
    "tlscacert": "",
    "tlscert": "",
    "tlskey": "",
    "group": "",
    "default-ulimits": {},
    "bridge": "",
    "fixed-cidr": "",
    "raw-logs": false,
    "registry-mirrors": [],
    "insecure-registries": [],
    "disable-legacy-registry": false
}

구성 파일에 필요한 구성 변경 내용만 추가 해야 합니다.You only need to add the desired configuration changes to the configuration file. 예를 들어 다음 샘플은 포트 2375에서 들어오는 연결을 수락 하도록 Docker 엔진을 구성 합니다.For example, the following sample configures the Docker Engine to accept incoming connections on port 2375. 다른 모든 구성 옵션은 기본값을 사용합니다.All other configuration options will use default values.

{
    "hosts": ["tcp://0.0.0.0:2375"]
}

마찬가지로 다음 예제에서는 대체 경로에 이미지와 컨테이너를 유지 하도록 Docker 데몬을 구성 합니다.Likewise, the following sample configures the Docker daemon to keep images and containers in an alternate path. 지정 하지 않은 경우 기본값은 c:\programdata\docker입니다.If not specified, the default is c:\programdata\docker.

{    
    "data-root": "d:\\docker"
}

다음 샘플에서는 포트 2376을 통한 보안 연결만 받아들이도록 Docker 데몬을 구성 합니다.The following sample configures the Docker daemon to only accept secured connections over port 2376.

{
    "hosts": ["tcp://0.0.0.0:2376", "npipe://"],
    "tlsverify": true,
    "tlscacert": "C:\\ProgramData\\docker\\certs.d\\ca.pem",
    "tlscert": "C:\\ProgramData\\docker\\certs.d\\server-cert.pem",
    "tlskey": "C:\\ProgramData\\docker\\certs.d\\server-key.pem",
}

Docker 서비스에서 Docker 구성Configure Docker on the Docker service

Docker는 Docker 서비스를 수정 하 여 구성할 수도 있습니다 sc config.The Docker Engine can also be configured by modifying the Docker service with sc config. 이 방법을 사용하면 Docker 서비스에서 직접 Docker 엔진 플래그를 설정합니다.Using this method, Docker Engine flags are set directly on the Docker service. 명령 프롬프트(cmd.exe는 PowerShell이 아님)에서 다음 명령을 실행합니다.Run the following command in a command prompt (cmd.exe not PowerShell):

sc config docker binpath= "\"C:\Program Files\docker\dockerd.exe\" --run-service -H tcp://0.0.0.0:2375"

참고

사용자의 디먼 파일에 항목이 이미 포함 되어 있는 경우에는 "hosts": ["tcp://0.0.0.0:2375"] 이 명령을 실행할 필요가 없습니다.You don't need to run this command if your daemon.json file already contains the "hosts": ["tcp://0.0.0.0:2375"] entry.

일반적인 구성Common configuration

다음 구성 파일 예제에서는 일반적인 Docker 구성을 보여 줍니다.The following configuration file examples show common Docker configurations. 이러한 구성은 단일 구성 파일로 결합할 수 있습니다.These can be combined into a single configuration file.

기본 네트워크 만들기Default network creation

기본 NAT 네트워크를 만들지 않도록 Docker 엔진을 구성 하려면 다음 구성을 사용 합니다.To configure the Docker Engine so that it doesn't create a default NAT network, use the following configuration.

{
    "bridge" : "none"
}

자세한 내용은 Docker 네트워크 관리를 참조하세요.For more information, see Manage Docker Networks.

Docker 보안 그룹 설정Set Docker security group

Docker 호스트에 로그인 하 고 로컬로 Docker 명령을 실행 하는 경우 이러한 명령은 명명 된 파이프를 통해 실행 됩니다.When you've signed in to the Docker host and are locally running Docker commands, these commands are run through a named pipe. 기본적으로 Administrators 그룹의 구성원만 명명된 파이프를 통해 Docker 엔진에 액세스할 수 있습니다.By default, only members of the Administrators group can access the Docker Engine through the named pipe. 이 액세스 권한이 있는 보안 그룹을 지정하려면 group 플래그를 사용합니다.To specify a security group that has this access, use the group flag.

{
    "group" : "docker"
}

프록시 구성Proxy configuration

docker searchdocker pull에 대한 프록시 정보를 설정하려면 HTTP_PROXY 또는 HTTPS_PROXY 이름과 프록시 정보 값을 사용하여 Windows 환경 변수를 만듭니다.To set proxy information for docker search and docker pull, create a Windows environment variable with the name HTTP_PROXY or HTTPS_PROXY, and a value of the proxy information. 이 작업은 PowerShell에서 다음과 유사한 명령을 사용하여 수행할 수 있습니다.This can be completed with PowerShell using a command similar to this:

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://username:password@proxy:port/", [EnvironmentVariableTarget]::Machine)

변수를 설정한 후에는 Docker 서비스를 다시 시작합니다.Once the variable has been set, restart the Docker service.

Restart-Service docker

자세한 내용은 Docker.com의 Windows 구성 파일을 참조 하세요.For more information, see Windows Configuration File on Docker.com.

Docker를 제거 하는 방법How to uninstall Docker

이 섹션에서는 Docker를 제거 하 고 Windows 10 또는 Windows Server 2016 시스템에서 Docker 시스템 구성 요소의 전체 정리를 수행 하는 방법을 설명 합니다.This section will tell you how to uninstall Docker and perform a full cleanup of Docker system components from your Windows 10 or Windows Server 2016 system.

참고

관리자 권한 PowerShell 세션에서 이러한 지침의 모든 명령을 실행 해야 합니다.You must run all commands in these instructions from an elevated PowerShell session.

시스템의 Docker 제거 준비Prepare your system for Docker's removal

Docker를 제거 하기 전에 시스템에서 컨테이너가 실행 되 고 있지 않은지 확인 합니다.Before you uninstall Docker, make sure no containers are running on your system.

실행 중인 컨테이너를 확인 하려면 다음 cmdlet을 실행 합니다.Run the following cmdlets to check for running containers:

# Leave swarm mode (this will automatically stop and remove services and overlay networks)
docker swarm leave --force

# Stop all running containers
docker ps --quiet | ForEach-Object {docker stop $_}

또한 Docker를 제거 하기 전에 시스템에서 모든 컨테이너, 컨테이너 이미지, 네트워크 및 볼륨을 제거 하는 것이 좋습니다.It's also good practice to remove all containers, container images, networks, and volumes from your system before removing Docker. 다음 cmdlet을 실행 하 여이 작업을 수행할 수 있습니다.You can do this by running the following cmdlet:

docker system prune --volumes --all

Docker 제거Uninstall Docker

그 다음에는 실제로 Docker를 제거 해야 합니다.Next, you'll need to actually uninstall Docker.

Windows 10에서 Docker 제거To uninstall Docker on Windows 10

  • Windows 10 컴퓨터에서 설정 > 으로 이동Go to Settings > Apps on your Windows 10 machine
  • Apps & 기능에서 Windows 용 Docker 찾기Under Apps & Features, find Docker for Windows
  • > *Windows 용 Docke\r***제거 로 이동Go to Docker for Windows > Uninstall

Windows Server 2016에서 Docker를 제거 하려면 다음을 수행 합니다.To uninstall Docker on Windows Server 2016:

다음 예제와 같이 관리자 권한 PowerShell 세션에서 제거-패키지제거-Module cmdlet을 사용 하 여 시스템에서 Docker 모듈과 해당 패키지 관리 공급자를 제거 합니다.From an elevated PowerShell session, use the Uninstall-Package and Uninstall-Module cmdlets to remove the Docker module and its corresponding Package Management Provider from your system, as shown in the following example:

Uninstall-Package -Name docker -ProviderName DockerMsftProvider
Uninstall-Module -Name DockerMsftProvider

Docker를 설치 하는 데 사용한 패키지 공급자를 찾을 수 있습니다.You can find the Package Provider that you used to install Docker with PS C:\> Get-PackageProvider -Name *Docker*

Docker 데이터 및 시스템 구성 요소 정리Clean up Docker data and system components

Docker를 제거한 후에는 docker가 제거 된 후에 해당 구성이 시스템에 남아 있지 않도록 Docker의 기본 네트워크를 제거 해야 합니다.After you uninstall Docker, you'll need to remove Docker's default networks so their configuration won't remain on your system after Docker is gone. 다음 cmdlet을 실행 하 여이 작업을 수행할 수 있습니다.You can do this by running the following cmdlet:

Get-HNSNetwork | Remove-HNSNetwork

시스템에서 Docker 프로그램 데이터를 제거 하려면 다음 cmdlet을 실행 합니다.Run the following cmdlet to remove Docker's program data from your system:

Remove-Item "C:\ProgramData\Docker" -Recurse

Windows에서 Docker/컨테이너와 관련된 Windows 선택적 기능을 제거하고자 할 수도 있습니다.You may also want to remove the Windows optional features associated with Docker/containers on Windows.

여기에는 Docker가 설치 될 때 Windows 10 또는 Windows Server 2016에서 자동으로 활성화 되는 "컨테이너" 기능이 포함 됩니다.This includes the "Containers" feature, which is automatically enabled on any Windows 10 or Windows Server 2016 when Docker is installed. Docker를 설치할 때 Windows 10에서 자동으로 활성화되지만 Windows Server 2016에서는 명시적으로 활성화해야 하는 "Hyper-V"가 포함될 수도 있습니다.It may also include the "Hyper-V" feature, which is automatically enabled on Windows 10 when Docker is installed, but must be explicitly enabled on Windows Server 2016.

중요

Hyper-v 기능은 단순한 컨테이너 보다 훨씬 더 많은 기능을 가능 하 게 하는 일반 가상화입니다.The Hyper-V feature is a general virtualization feature that enables much more than just containers. Hyper-v 기능을 사용 하지 않도록 설정 하기 전에 Hyper-v를 필요로 하는 시스템에 다른 가상화 된 구성 요소가 없는지 확인 합니다.Before disabling the Hyper-V feature, make sure there are no other virtualized components on your system that require Hyper-V.

Windows 10에서 Windows 기능을 제거 하려면 다음을 수행 합니다.To remove Windows features on Windows 10:

  • 제어판 > 의 프로그램 > 프로그램및 기능 > 으로 이동 하 여Windows 기능을 설정 하거나 해제합니다.Go to Control Panel > Programs > Programs and Features > Turn Windows features on or off.
  • 사용 하지 않으려는 기능의 이름 (이 경우, 컨테이너 및 (선택적) hyper-v)을 찾습니다.Find the name of the feature or features you want to disable—in this case, Containers and (optionally) Hyper-V.
  • 사용 하지 않도록 설정할 기능 이름 옆의 확인란을 선택 취소 합니다.Uncheck the box next to the name of the feature you want to disable.
  • "확인" 선택Select "OK"

Windows Server 2016에서 Windows 기능을 제거 하려면 다음을 수행 합니다.To remove Windows features on Windows Server 2016:

관리자 권한 PowerShell 세션에서 다음 cmdlet을 실행 하 여 시스템에서 컨테이너 와 (선택적으로) hyper-v 기능을 사용 하지 않도록 설정 합니다.From an elevated PowerShell session, run the following cmdlets to disable the Containers and (optionally) Hyper-V features from your system:

Remove-WindowsFeature Containers
Remove-WindowsFeature Hyper-V

시스템 다시 부팅Reboot your system

제거 및 정리를 완료 하려면 관리자 권한 PowerShell 세션에서 다음 cmdlet을 실행 하 여 시스템을 다시 부팅 합니다.To finish uninstallation and cleanup, run the following cmdlet from an elevated PowerShell session to reboot your system:

Restart-Computer -Force