보안/Docker

[Docker] 호스트와 컨테이너의 파일시스템 연결

Younngjun 2023. 4. 29. 10:57
사전 준비

 

이전 실습에서 0.0.0.0의 IP주소와 8000포트로 선언해주었다. 다음 주소로 실행하면 이와 같이 연결이 잘 수행되고 있는 것을 확인할 수 있다.

0.0.0.0:8000

 

이제 index.html이라는 기본 페이지를 수정하고자 한다. 방법은 크게 두 가지로 나눌 수 있다.

직접 Container 안에 접속하여 html 파일을 수정하거나, 호스트와 컨테이너의 파일 시스템과 매핑한 후 호스트에서 작업을 하는 것이다.

 

Container 에 접속하여 파일 수정

 

직접 Container 안에 접속한 후, 쉘로 접근하여 파일을 직접 수정할 수 있다.

출처: 생활코딩 Docker 입문수업 - 6. 명령어 실행

 

TestWS1 컨테이너를 실행하고, 쉘로 작업하기 위한 명령어를 실행한다.

docker start TestWS1
docker exec -it TestWS1 /bin/sh

 

수정하고자하는 디렉토리로 이동한 후, 해당 파일을 직접 수정한다.

cd /usr/local/apache2/htdocs
ls -al

 

다음과 같이 index.html 파일을 수정하면 바뀌는 것을 확인할 수 있다.

vim index.html

 

호스트와 컨테이너의 파일시스템 매핑

 

다음은 호스트와 컨테이너의 파일시스템을 매핑한 후, 호스트에서 수정 작업을 수행하는 방법이다. 현재 8000번 포트로 매핑을 해주었으므로 접속 시 8000 포트를 실행해주면 된다.

출처: 생활코딩 Docker 입문수업 - 7. 호스트와 컨테이너의 파일시스템 연결

 

먼저 호스트에 컨테이너의 /usr/local/apache2/htdocs 디렉터리와 매핑할 디렉터리를 생성한다. Desktop 경로의 htdocs 디렉터리를 만들어주었다.

mkdir htdocs

 

그 다음은 -v 옵션을 사용하여 호스트와 컨테이너의 디렉터리를 매핑해주었다. (포트는 8888번으로 매핑해주었다)

Desktop docker run --name TestWS2 -p 8888:80 
	-v /Users/youngjunlee/Desktop/htdocs:/usr/local/apache2/htdocs httpd

 

이후 Desktop/htdocs 디렉터리에서 index.html 파일을 생성하고 다음과 같이 구문을 추가한다.

 

다시 0.0.0.0:8888로 접속하였을 때 다음과 같이 변경된 것을 확인할 수 있다.

 

마찬가지로 TestWS2 콘테이너의 /usr/local/apache2/htdocs 의 index.html 파일도 동일하게 수정되었다.