컨테이너와 호스트 간에 파일 복사

728x90
반응형

출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스

 

 

파일 복사

  • 파일 복사는 컨테이너 -> 호스트, 호스트 -> 컨테이너로 양방향 모두 가능하다.
  • 호스트 쪽 파일은 어디에 위차한 파일이라도 복사 가능하다.
  • 컨테이너 쪽에서는 파일을 복사할 경로를 지정할 수 있다.

 

파일 복사 커맨드

  • Windows나 MacOS는 drag and drop으로 파일을 복사할 수 있지만 도커는 파일 복사 커맨드를 사용한다.
  • cp 커맨드 뒤로 원본 경로, 복사할 경로 순서로 입력한다.
  • 호스트 -> 컨테이너 복사 커맨드
    • docker cp 호스트_경로 컨테이너_이름:컨테이너_경로
  • 컨테이너 -> 호스트 복사 커맨드
    • docker cp 컨테이너_이름:컨테이너_경로 호스트_경로

 

 

호스트 경로의 예

  • 호스트(도커 엔진을 실행하는 컴퓨터) 내 파일 위치는 어디라도 괜찮다.
  • 파일의 위치는 '경로' 형태로 작성한다. 여기서 경로는 컴퓨터 속 파일이나 디렉토리의 주소를 나타낸다.
  • ex) C:\Users\사용자명\Documents\파일명
  • /home/사용자명/파일명

 

 

Index.html 파일 만들기

  • 아파치 컨테이너의 경우 index.html 파일을 만들면 파일의 내용이 초기 화면보다 우선해 표시된다.
  • 메모장이나 텍스트 에디터를 사용해 index.html 파일을 생성한다.
  • 내용을 작성하고 index.html이라는 이름으로 저장한다. 파일을 저장할 때 html을 선택하거나 파일명에 포함해 작성한다.
  • 인코딩이 UTF-8인지 확인한다.
  • 작성한 파일을 문서 폴더나 홈 디렉토리에 둔다.

 

[실습] 호스트의 파일 -> 컨테이너 속으로 복사

  • 아파치 컨테이너에 index.html 파일을 복사한다.
  • 아파치에 접근해 index.html 파일의 내용이 출력되는지 확인한다.

 

실습 내용

  1. 아파치 컨테이너 생성 및 실행
  2. 파일 복사
  3. 확인

 

컨테이너 정보

  • 컨테이너 이름
    • zw_apache
  • 이미지 이름
    • httpd
  • 포트 설정
    • 8089:80

 

 

실습

 

 

메모장을 열고 다음 내용을 입력한다.

<html>
	<meta charset="utf-8"/>
		<body>
			<div>
			입력하고 싶은 내용 입력
			</div>
		</body>
</html>

 

파일을 저장하고 이름을 index.html 로 저장한다. 인코딩이 UTF-8 인지 확인한다.

 

 

docker run --name zw_apache -d -p 8089:80 httpd

 

아파치 컨테이너를 만든다. 이름은 zw_apache, 포트 번호는 8089를 사용한다.

 

 

웹 브라우저를 열고 http://localhost:8089 로 접속하면 아파치 초기 화면이 출력된다.

 

 

docker cp C:\Users\zangw\OneDrive\문서\docker_ex\index.html zw_apache:/usr/local/apache2/htdocs/

 

우리가 위에서 생성한 index.html 파일을 아파치 컨테이너의 /usr/local/apache2/htdocs/ 디렉토리로 복사한다.

 

 

웹 브라우저를 새로 고침하면 우리가 index.html 파일에 작성한 블로그 주인장에 간절한 소망이 담긴 내용이 출력된다.

 

 

[실습] 컨테니어 파일 -> 호스트로 복사

  • 이번에는 아파치 컨테이너의 index.html 파일을 호스트 쪽으로 다시 복사한다.
  • 새로 복사한 파일을 구별할 수 있도록 먼저 호스트에 있는 파일의 이름을 index2.html로 변경한다.

 

실습 내용

  1. 아파치 컨테이너 생성 및 실행
  2. 파일 복사
  3. 확인

 

실습

 

 

새로 복사할 index.html과 구분하기 위해 기존의 index.html 파일명을 변경한다.

 

 

docker cp zw_apache:/usr/local/apache2/htdocs/index.html C:\users\zangw\OneDrive\문서\docker_ex\

 

아파치 컨테이너에 복사해 뒀던 index.html 파일을 호스트 컴퓨터로 복사한다.

 

 

복사한 폴더로 가보면 index.html 파일이 복사된 것을 확ㄷ인할 수 있다.

 

 

docker stop zw_apache
docker rm zw_apache
docker image rm httpd

 

zw_apache 컨테이너를 중지 및 제거하고 아파치 이미지를 제거한다.

728x90
반응형