window docker 무료 설치 및 hello world 예제( feat. WSL 활용 )

2024. 4. 19. 16:16it

반응형

 

0. Power Shell 관리자 권한으로 실행

 

728x90

 

1. wsl 설치 ( 기본은 우분투(ubuntu) ) 

wsl --install

 

 

2. wsl 버전 2번으로 수행

wsl --set-default-version 2

WSL 1 vs WSL 2

  • WSL 1: 이 버전은 Linux 시스템 호출을 Windows NT API 호출로 번역하는 방식으로 작동한다. 이 방식은 호환성은 높지만 성능이 제한적일 수 있다
  • WSL 2: 이 버전은 가상화 기술을 사용하여 실제 Linux 커널을 실행한다. 이로 인해 파일 시스템 성능이 향상되고, 전체 시스템 호출 호환성이 제공된다. 또한 Docker와 같은 특정 애플리케이션에 더 적합하다.

WSL 2를 사용해야 하는 이유

Docker와 같은 툴은 Linux 커널 기능을 많이 사용하며, WSL 2는 이러한 기능을 효과적으로 지원한다. WSL 1에서는 이러한 기능의 일부가 제대로 작동하지 않을 수 있다. 따라서, Docker를 사용하려면 WSL 2가 더 적합하다.

 

 

3. 재부팅하고 ubuntu 실행

 

 

4, docker 설치 명령 실행

반응형
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER

 

 

5. 윈도우 경로 마운트 

WSL은 Windows의 파일 시스템을 /mnt/ 아래에 마운트하여 Linux 환경에서 직접 접근할 수 있다.

각 Windows 드라이브는 /mnt/<드라이브_문자> 형식의 경로로 표현할 수 있다. 

( 해당 경로는 내 개인 폴더 경로이다. 원하는 경로로 이동해서 실행하면 된다. )

cd /mnt/c/Users/docker

 

 

6. hello-world-web 폴더 만들기

mkdir hello-world-web
cd hello-world-web

 

 

7. docker file 작성

vi Dockerfile
# 사용할 베이스 이미지 지정
FROM nginx:alpine

# /usr/share/nginx/html 디렉토리에 index.html 파일을 추가
COPY index.html /usr/share/nginx/html/index.html

# 컨테이너가 80 포트에서 실행되도록 설정
EXPOSE 80

 

 

9. index.html 작성

vi index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello World</title>
</head>
<body>
    <h1>Hello World!</h1>
    <p>This is my first Docker-based web page.</p>
</body>
</html>

 

 

10.이미지 빌드

docker build -t hello-world-web .

 

 

11. 컨테이너 실행

docker run -d -p 8080:80 hello-world-web

 

 

12. 확인 ( http://localhost:8080/ ) 

반응형