TIL(Today I Learned)

Windows에서 Docker 설치

Happy._. 2024. 6. 27. 23:39

Docker를 사용하는 이유

  • 애플리케이션 개발 및 배포가 편해짐
    • Docker Container 내부에서 여러 소프트웨어를 설치해도 호스트 OS에는 영향이 없음
    • CI/CD에서 지속적인 통합(Continuous Intergration) 과정의 테스트에서 Docker를 활용
    • 어떤 서버를 올리더라도 같은 환경으로 구성된 컨테이너로 동작하기 때문에 표준화된 배포를 구성할 수 있음
  • 여러 애플리케이션의 독립성과 확장성이 높아짐
  • Docker가 가상화에서 사실상 표준의 위치

Docker 및 Docker Compose 설치(Windows)

💡windows의 경우 WSL2 설치가 필요

WSL2 설치를 위한 사전 준비

[시작] → [제어판] → [프로그램 및 기능] → [Windows 기능 켜기/끄기] → [Hyper-V]와 [Linux용 Windows 하위 시스템] 체크 → Windows 재부팅

WSL2 설치

https://learn.microsoft.com/ko-kr/windows/wsl/install

1. 관리자 권한으로 PowerShell 실행

2. 다음 명령어를 통해 WSL2 설치

wsl --install

Ubuntu 22.04에 최신 버전의 docker 설치

Ubuntu Linux 버전 확인 명령어: lsb_release -a

💡다음 명령어들을 순차적으로 입력

# docker engine gpg 키 등록
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# apt source 에 docker 관련 추가
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

# docker engine 설치
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin docker-compose

# docker 그룹에 현재 계정을 등록하여 sudo 없이 docker 명령을 사용하게 함
sudo usermod -aG docker <username>
sudo service docker restart

# 새로운 터미널을 열고 확인
docker version
docker-compose --version

Docker Desktop 설치

https://docs.docker.com/desktop/install/windows-install/

Docker Test

Docker 실행 → [설정] → [Resources] → [WSL intergration] → Ubuntu 활성화 → [Apply & restart]

💡Ubuntu 22.04에서 관리하는 이미지, 컨테이너, 볼륨 등을 Windows의 Docker Desktop에서도 같이 관리할 수 있게 해줌

Container 실행 테스트

Ubuntu 터미널 실행 후 Docker 엔진과 구성을 확인하는 다음 명령어 입력

docker info

 

다음 명령어들을 순차적으로 입력해 nginx 이미지를 다운받고 실행까지 테스트

# nginx 이미지 다운받기
docker image pull nginx:1.25.3-alpine
docker images
docker image history nginx:1.25.3-alpine
docker run -d -p 8001:80 --name webserver01 nginx:1.25.3-alpine
docker ps | grep webserver01
docker port webserver01
curl localhost:8001