Windows 11에서 Docker Deasktop 도커 데스크탑 설치하기
Windows 11에 Docker를 설치하고 구성하는 과정에 기록한다. 딱히 누군가에게 큰 도움이 되지는 않을것이라 생각하며, 보다 자세한 설명이 필요한 경우에는 다른 블로그나, 개발자 페이지를 참고하시길 바란다. 아래는 내가 진행하면서 참고한 Windows 11에서 Docker를 설치하는 과정을 작성한 것이다.
참고하는데 도움이 된 것은 Microsoft에서 관리하는 Learn 과 여러 블로그 글을 참고하여 작성 후 gpt 를 통해 글을 정리하였다.
1. Docker 설치
1-1. Docker Desktop 설치
- Docker 공식 웹사이트 방문:
- Docker Desktop 다운로드:
- “Get Docker Desktop for Windows” 버튼을 클릭하여 설치 파일을 다운로드.
- 설치:
- 다운로드한
.exe
파일을 실행하여 Docker Desktop을 설치. - 설치 과정에서 WSL 2가 자동으로 설치되고 활성화될 수 있도록 안내합니다.
- 다운로드한
- Windows 시스템 재부팅:
- 설치가 완료되면, Docker Desktop을 원활하게 사용하기 위해 시스템을 재부팅.
1-2. WSL 2 설치 및 활성화
Docker는 WSL 2(Windows Subsystem for Linux 2)를 사용하여 리눅스 컨테이너를 실행합니다. WSL 2가 설치되지 않으면 Docker가 정상적으로 작동하지 않습니다.
- PowerShell을 관리자 권한으로 실행하고, WSL 2를 설치합니다:
wsl --set-default-version 2
- Linux 배포판 설치:
- Microsoft Store에서 원하는 리눅스 배포판(예: Ubuntu)을 설치하고 설정합니다.
- WSL 2 상태 확인:
wsl --list --verbose
이 명령을 통해 WSL 2가 활성화된 리눅스 배포판을 확인할 수 있습니다.
2 Docker 엔진 구성
Docker 엔진은 다양한 방법으로 구성할 수 있습니다. 일반적으로 구성 파일을 수정하여 Docker 엔진의 동작을 변경합니다.
2-1. 구성 파일 사용
Docker 엔진의 주요 구성 파일은 daemon.json
입니다. 이 파일을 통해 Docker의 다양한 설정을 변경할 수 있습니다. 기본 경로는 C:\ProgramData\Docker\config\daemon.json
입니다. 이 파일이 없으면 새로 생성할 수 있습니다.
기본 daemon.json
예시:
{ "authorization-plugins": [], "dns": [], "dns-opts": [], "dns-search": [], "storage-driver": "", "log-driver": "", "debug": true, "hosts": ["tcp://0.0.0.0:2375"], "data-root": "D:\\docker", "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" }
이 구성 파일에서는 여러 설정을 조정할 수 있습니다. 예를 들어:
- 포트 설정:
"hosts": ["tcp://0.0.0.0:2375"]
는 모든 IP 주소에서 2375번 포트를 통해 Docker 엔진에 접근할 수 있도록 합니다. - 데이터 경로 설정:
"data-root": "D:\\docker"
는 Docker의 이미지 및 컨테이너 파일이D:
드라이브에 저장되도록 설정합니다. - 보안 설정:
tlsverify
및 인증서 설정(tlscacert
,tlscert
,tlskey
)을 통해 보안 연결을 설정할 수 있습니다.
2-2. Docker 서비스 구성
Docker 서비스는 sc config
명령을 사용하여 수정할 수 있습니다. 예를 들어, Docker 엔진에 --run-service
와 -H tcp://0.0.0.0:2375
플래그를 추가하려면 다음 명령을 사용할 수 있습니다:
sc config docker binpath= "\"C:\\Program Files\\docker\\dockerd.exe\" --run-service -H tcp://0.0.0.0:2375"
이 명령은 Docker 엔진을 TCP 2375 포트로 접근할 수 있게 설정합니다. daemon.json
파일에 이미 포트 설정이 되어 있다면 이 명령을 실행할 필요는 없습니다.
3. 일반적인 Docker 구성 예시
3-1. 기본 네트워크 설정
Docker는 기본적으로 NAT(Network Address Translation) 네트워크를 사용하여 컨테이너를 연결합니다. 이를 비활성화하려면 다음과 같이 구성할 수 있습니다:
{ "bridge": "none" }
이 설정은 기본 네트워크인 bridge
를 사용하지 않도록 설정합니다.
3-2. Docker 보안 그룹 설정
Docker는 기본적으로 Administrators
그룹의 멤버만 명명된 파이프를 통해 Docker 엔진에 액세스할 수 있습니다. 다른 보안 그룹을 지정하려면 다음과 같이 설정할 수 있습니다:
{ "group": "docker" }
이 설정은 docker
라는 보안 그룹을 Docker 엔진에 대한 액세스 권한을 부여합니다.
3-3. 프록시 설정
Docker가 프록시 서버 뒤에서 실행되는 경우, HTTP_PROXY
와 HTTPS_PROXY
환경 변수를 설정하여 프록시를 지정할 수 있습니다. PowerShell을 사용하여 다음 명령으로 설정할 수 있습니다:
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://username:password@proxy:port/", [EnvironmentVariableTarget]::Machine)
변수를 설정한 후에는 Docker 서비스를 다시 시작해야 합니다
Restart-Service docker
Docker를 제거하는 방법
Docker를 제거하기 전에 실행 중인 컨테이너, 이미지, 네트워크 등을 정리해야 합니다. 다음 명령어로 이를 수행할 수 있습니다.
Docker의 제거를 위해 시스템 준비
Docker를 제거하기 전에 시스템에서 실행 중인 컨테이너가 없는지 확인합니다.
다음 cmdlet을 실행하여 실행 중인 컨테이너를 확인합니다.
PowerShell > # 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를 제거하기 전에 모든 컨테이너, 컨테이너 이미지, 네트워크 및 볼륨 또한 시스템에서 제거하는 것이 좋습니다. 다음 cmdlet 을 실행하면 이 작업을 수행할 수 있습니다.
PowerShell > docker system prune --volumes --all
- Docker 제거 순서
- Windows 10에서 Docker 제거:
- Windows 10 머신에서 설정>앱으로 이동
- 앱 및 기능 아래에서 Windows용 Docker 찾기
- Windows용 Docker>제거로 이동
Windows Server 2016에서 Docker 제거 방법은 맨 앞에서 언급했던 하단의 링크에 보다 자세하게 나와있으니, 참고하여 제거 하시면 되겠습니다. Windows Server 환경이 필요하지 않아서 이 부분은 아예 제외함.
결론
Windows 11에서 Docker를 설치하고 구성하는 과정은 여러 단계로 나누어져 있으며, Docker 엔진의 다양한 설정을 통해 성능과 보안을 최적화할 수 있습니다. daemon.json
파일을 사용하여 Docker의 설정을 맞추고, 필요에 따라 서비스 구성을 수정하는 등의 방법을 통해 Docker의 동작을 세밀하게 제어할 수 있습니다.