코딩왕 미룡

[Docker] Docker Desktop 사용 예시(파일 수정해보기) 본문

Docker

[Docker] Docker Desktop 사용 예시(파일 수정해보기)

허미룡 2023. 6. 2. 16:55

Docker Desktop 기준

 

◦ 컨테이너에서 open in terminal 클릭

   이 안에서 명령어 실행시 host가 아닌 컨테이너 안에서의 명령어를 실행한 것

 

ex) 아파치 서버 - 도커에서는 httpd라는 이미지로 사용

       메인페이지인 index.html을 실행해줌

        → but, 수정하기 위해 nano index.html 를 즉시 사용 할 수는없음

       docker의 주요 장점은 적은 용량이기 때문에 자잘한 파일들까지 포함 할 수 없음 (용량 문제)

 

       ✔️ apt update(최신으로 갱신)

             apt install nano(나노 에디터 설치)

             nano index.html → 파일 수정 가능

 


 

1. 위와 같은 예시는 컨테이너 내부의 파일을 직접 수정하는 방법이므로 위험

2. container를 사용하는 이유는 언제든 필요할 때 사용하고 삭제할 수 있기 때문인데 파일을 수정한 후 container가 삭제되면 전부 손실되는 문제(휘발성)

 

3. 도커의 핵심 : 동일한 이미지에 기반한 다수의 컨테이너가 서로에게 완전히 격리됨

     → container의 디렉토리와 host의 디렉토리를 연결

     → host에서 변경이 이루어졌을 때 바로 반영

     → 컨테이너가 삭제되어도 호스트에는 남아있기 때문에 보다 안전한 개발 가능

 

❓실행환경은 Container에 맡기고 수정은 Host에서 하려면 ?

    원하는 위치에 index.html 파일을 생성 후 코드 작성

    터미널을 열고 host의 포트번호와 container의 포트번호 연결

    내가 생성한 index.html의 위치 : container에서 index.html의 위치

    Volume을 사용하는 방식

 

ex) docker run -p 8888:80 -v C:\Users\pc\Desktop\htdocs:/usr/local/apache2/htdocs/ httpd

 


 

🔴 오늘의 정리

코드, 코드를 실행하는 환경 등 애플리케이션을 구성하는 모든 것을 이미지라고 불리는 곳에 넣음

이미지를 실행하는 것이 아닌 이미지 기반으로 컨테이너를 실행하는 것

도커는 궁극적으로 이미지가 아니라 컨테이너에 관한 것임

'Docker' 카테고리의 다른 글

[Docker] Docker hub(push/pull)  (0) 2023.06.07
[Docker] Dockerfile 작성하기  (0) 2023.06.06
[Docker] Bind Mounts(바인드 마운트)  (0) 2023.06.06
[Docker] Volumes(볼륨)  (1) 2023.06.05
[Docker] Docker 기초(배경 및 기본 용어)  (1) 2023.06.01