일단 해보기 : Docker 시작하기(Windows)

Jang990·2024년 2월 1일
0

일단해보기

목록 보기
1/7

컴퓨터 설정

  1. CPU 가상화 지원여부 확인하기
    만약 사용이 아니라면 컴퓨터를 다시시작해서 BIOS 설정에서 활성화해주기.

  2. Hyper-V 기능 활성화하기
    Windows 기능 켜기/끄기로 들어가서 Hyper-V 기능 체크하고 적용하기.

다운로드 - 설치

https://docs.docker.com/desktop/install/windows-install/
해당 링크로 가서 windows 환경에 맞는 인스톨러를 받아서 설치하자.
나는 Docker를 잘 모르기 때문에 모든 설치 설정은 권장사항대로 진행했다.

동작 확인하기

모든 것을 설치하고 재시작하면 다음과 같이 도커가 실행되는 것을 확인할 수 있다.

cmd로 접속해서 docker가 잘 설치됐는지도 확인해보자.
docker images 명령어를 통해서 이미지 리스트를 확인해보자.
사진과 같이 아무것도 안나올 것이다.

Nginx로 도커 이미지 감 잡아보기

이미지는 컨테이너의 스냅샷으로 생각하면 쉽다.
Nginx를 가볍게 실행해보며 도커 이미지에 대해서 감을 잡아보자.

설치

cmd에서 docker pull nginx를 통해 nginx를 설치하자.

docker images를 다시 입력해서 이미지 리스트를 확인해보면 설치 정보를 확인할 수 있다.

실행

이제 이미지가 준비됐으니 다음 명령어로 이미지를 컨테이너화 해서 도커를 실행해보자.
docker run --name nginx -p 8000:80 -d nginx

docker run : run 명령어 실행
--name nginx : 컨테이너 이름을 nginx로 지정
-p : 도커에서 실행되는 포트와 현재 호스트가되는 내 PC의 포트를 연결
즉 내 8000번 포트에 도커 컨테이너 80포트를 포트 포워딩 한 것.
-d : 백그라운드로 실행 (detached mode)
nginx : 마지막 nginx는 도커 이미지의 이름

localhost:8000으로 들어가면 Nginx에서 제공하는 index.html 화면을 확인할 수 있다.

이미지 변화주기

Nginx의 index.html 파일을 약간 수정해보자.

이미지는 컨테이너의 스냅샷으로 변경이 불가능한 파일이다.
그러니 컨테이너의 파일을 수정하고 이미지를 만들면 된다.

index.html 파일 가져오기

다시 cmd로 들어가서 다음 명령어를 입력하자.
docker exec -it nginx /bin/bash
이제 리눅스 쉘이 cmd 화면에 표시될 것이다.

-it : 리눅스 쉘에 접근하여 명령어를 입력하고 쉘을 표시하기 위한 옵션

-i : 표준입출력 STDIN를 열겠다는 의미
-t : 가상 tty(pesudo tty)를 통해 접속하겠다는 의미


이제 리눅스의 find 명령어를 사용해서 index.html의 위치를 찾자
find / -name index.html 2>dev/null
그리고 리눅스 쉘을 나오자

2>/dev/null : 정상 출력이 아닌 에러 출력을 /dev/null로 보내버리기


docker 명령어로 찾은 index.html 파일을 호스트 PC에 복사해오자.
docker cp nginx:find명령어로-찾은결과 index.html
주의할 점은 해당 명령어를 실행하는 위치에 index.html 파일을 미리 임시로 만들어 놔야 복사해올 수 있다.

변경 후 이미지 생성

가져온 html 파일의 h1 태그의 내용을 약간 수정해주자.

이제 변경한 명령어를 Nginx의 파일에 복사해주자.
cp 뒤의 명령어 순서가 바뀐 것을 주의해라.
docker cp index.html nginx:find명령어로-찾은결과


이제 index.html 파일이 수정된 현재 상태의 이미지로 만든다.
docker commit nginx mynginx

mynginx라는 이미지가 추가된 것을 확인할 수 있다.

기존 컨테이너 제거

docker ps 명령어로 실행 컨테이너를 확인할 수 있다.

실행되고 있는 컨테이너는 삭제되지 않으니
현재 실행중인 nginx 컨테이너를 종료하고 삭제해보자.

docker stop nginx - nginx 컨테이너 정지
docker rm nginx - nginx 컨테이너 삭제
참고: docker start [컨테이너 이름] - 컨테이너 실행

docker ps를 했을 때 정지된 컨테이너는 보이지 않지만
-a 옵션을 붙혀서 정지된 컨테이너도 확인할 수 있다.

새 이미지로 컨테이너 만들기

해당 명령어를 통해 새로 만든 이미지로 컨테이너를 만들어보자
docker run --name nginx -p 8000:80 -d mynginx

Hello World!로 변경된 것을 확인할 수 있다.

도커 파일로 이미지 생성하기

실제로 이렇게 스냅샷 형태로 이미지를 만들기 보다는 도커 파일을 많이 사용한다.

아까 index.html을 만든 공간에서 Dockerfile.txt 파일을 만들어주자.
그리고 다음 내용을 넣고 확장자를 없애주자.

FROM nginx
COPY index.html /usr/share/nginx/html/

이제 다음 명령어를 통해서 mynginx2라는 이미지가 생성된다.
docker build -t mynginx2 .

docker run --name custom1 -p 8002:80 -d mynginx2
이번에는 다른 포트로 실행해봤다.
똑같이 변경된 index.html이 적용되어 화면이 보여지는 것을 확인할 수 있다.

도커 이미지 삭제

docker rmi [이미지 이름 ] 또는 docker rmi [이미지 ID]로 이미지를 삭제할 수 있다.

출처, 참고

책 - 알면 더 쉬운 도커 쿠버네티스
https://wannabe-gosu.tistory.com/53

profile
공부한 내용을 적지 말고 이해한 내용을 설명하자

0개의 댓글