본문 바로가기
docker & kubernetes

컨테이너 사용법 3 | Docker&Kubernetes 학습 26

by 그갸거겨 2024. 11. 29.
728x90
반응형
바인드 마운트와 볼륨 마운트를 직접 해보자.
바인드 마운트 실습을 해보자!!

실습 내용

생성할 컨테이너 정보

항목
컨테이너 이름 apa00ex20
이미지 이름 httpd
포트 번호 설정 8090

-v 옵션의 설정값

항목
컨테이너 마운트 경로 (마운트 대상) /usr/local/apache2/htdocs
실제 폴더 (마운트 원본) apa_folder
실제 마운트 원본 경로(윈도우) C:\User\사용자명\Documents\apa_folder
실제 마운트 원본 경로(macOS) /Users/사용자명/Documents/apa_folder
실제 마운트 원본 경로(리눅스) /home/사용자명/apa_folder
  • -v 옵션(윈도우): -v C:\User\사용자명\Documents\apa_folder:/usr/local/apache2/htdocs
  • -v 옵션(macOS): -v /Users/사용자명/Documents/apa_folder:/usr/local/apache2/htdocs
  • -v 옵션(리눅스): -v /home/사용자명/apa_folder:/usr/local/apache2/htdocs

1. 마운트 원본이 될 폴더 만들기

  • apa_folder라는 이름으로 마운트 원본이 될 폴더를 생성
  • 리눅스라면 'mkdir 폴더명" 사용

2. run 명령어로 아파치 컨테이너 실행

  • 아파치 이미지(httpd)를 사용해 apa00ex20이라는 이름으로 컨테이너 생성 및 실행하자
  • OS에 따라 경로가 달라지니 주의해서 입력하고, ps 명령어로 컨테이너의 실행 여부를 확인해보자.
  • 터미널 창에 입력할 명렁
    • Windows: docker run --name apa00ex20 -d -p 8090:80 -v C:\Users\사용자명\Documents\apa_folder:/usr/local/apache2/htdocs httpd
    • macOS: docker run --name apa00ex20 -d -p 8090:80 -v /Users/사용자명/Documents/apa_folder:/usr/local/apache2/htdocs httpd
    • Linux: docker run --name apa00ex20 -d -p 8090:80 -v /home/사용자명/apa_folder:/usr/local/apache2/htdocs httpd

3. 웹 브라우저를 통해 아파치에 접근해 초기 화면 확인

  • localhost:8090에 접근해 아파치 초기 화면을 확인한다.
  • 아래와 같이, 'Index of /' 라고 적힌 메시지가 출력된다.
    • 마운트 될 폴더가 존재하지 않았다면, 'It Works' 메시지가 출력된다.

4. 마운트된 폴더에 index.html파일을 배치

  • apa_folder 폴더 속에 index.html파일을 배치한다.
  • Windows나 macOS는 드래그 앤 드롭으로, linux는 'cp 원본_파일 복사_대상' 명령어를 사용한다.

5. index.html 파일이 변경됐는지 확인

  • 다시 웹 브라우저에서 localhost:8090에 접근하면, 배치했던 index.html파일의 내용으로 출력된다.
    • 바뀌지 않는다면 F5 또는 새로고침 버튼 클릭

6. 뒷정리

  • 컨테이너 종료: docker container stop apa00ex20
  • 컨테이너 삭제: docker container rm apa00ex20
  • 컨테이너 목록 확인: docker container ps -a
볼륨 마운트 실습을 해보자!!

실습내용

생성할 컨테이너 정보

항목
컨테이너 이름 apa00ex21
이미지 이름 httpd
볼륨 이름 apa00vol1
포트 번호 설정 8091

커맨드에서 사용할 옵션, 대상, 인자

  • 볼륨 생성: docker volume create apa00vol1
  • 볼륨 상세 정보 확인: docker volume inspect apa00vol1
  • 볼륨 삭제: docker volume rm apa00vol1
  • -v 옵션: -v apa00vol1:/usr/local/apache2/htdocs
  • 마운트 원본과 마운트 대상 정보
항목
컨테이너 마운트 경로 /usr/local/apache2/htdocs
마운트 원본 볼륨 apa00vol1

1. 마운트할 볼륨 생성

  • 볼륨이 생성될 위치는 도커 엔진에서 관리하기 때문에 신경쓰지 않아도 된다.
  • 터미널 창에 입력할 명령어: docker volume create apa00vol1

2. run 명령어로 아파치 컨테이너 실행

  • 아파치 이미지(httpd)를 사용해, apa00ex21이라는 이름의 컨테이너를 생성 및 실행하자
  • -v 옵션에 조금 전 생성한 볼륨과 컨테이너 속 마운트 위치를 지정한다.
  • 터미널 창에 입력할 명령어: docker run --name apa00ex21 -d -p 8091:80 -v apa00vol1:/usr/local/apache2/htdocs httpd

3. volume inspect 명령어로 볼륨의 상세 정보 확인

  • container inspect 명령어로 볼륨이 컨테이너에 마운트 됐는지도 확인한다.
  • 터미널 창에 입력할 명령어
    • docker volume inspect apa00vol1 
    • docker container inspect apa00ex21
      1. 위 명령어를 실행하면 나오는 여러 항목 중에, 'Mounts'에 마운트된 볼륨의 정보를 확인할 수 있다.

 

4. 뒷정리

  • 컨테이너 종료: docker container stop apa00ex21
  • 컨테이너 삭제: docker container rm apa00ex21
  • 컨테이너 목록 확인: docker container ps -a
  • 볼륨 삭제: docker volume rm apa00vol1
  • 볼륨 목록 확인: docker volume ls
  • 이미지 삭제: docker image rm httpd
  • 이미지 목록 확인: docker image ls
728x90