Docker 컨테이너에 로컬 파일 연결

이민정·2022년 3월 31일

Docker

목록 보기
3/4
post-thumbnail

도커 이미지에 모든 기능이 구성되어 있을 수는 없는 법

기존 도커 이미지에 파일을 추가하고 도커 이미지 만들기!


로컬 파일과 도커 이미지가 구분되어 있는 경우

  • 웹 서버는 도커 컨테이너로 실행
  • 웹 서버를 구성하는 파일은 직접 만들거나 가져온 파일로 구성

로컬 파일과 도커 이미지가 구분됐을 때의 장점

  1. 서버에 문제가 생기는 것을 호스트와 별개로 파악 가능
  2. 문제가 생긴 서버를 끄고, 도커 이미지로 서버 재구동할 수 있음

로컬 파일과 도커 이미지 연결

2가지의 방법이 있다.

1. Copy: 파일 복사

copy: 호스트와 컨테이너 사이의 파일을 복사(copy)

2. Volume: 공간 마운트

Volume: 호스트와 컨테이너 사이의 공간을 마운트(mount)

mount: 저장 공간을 다른 장치에서 접근할 수 있도록 경로 허용
->하나의 저장 공간처럼 보이게 하는 것

포스팅에서 소개할 내용은 copy!
Docker 컨테이너에 파일을 복사하는 방법이다


Docker 컨테이너에 파일 복사

우선 httpd를 알아야 한다

httpd: http daemon
Apache HTTP Server를 실행할 수 있는 오픈소스 웹 서버 소프트웨어

httpd는 /usr/local/apache2/htdocs/ 경로에 웹 서버와 관련된 파일이 저장되어 있다면, 해당 파일을 기반으로 웹 서버가 실행되도록 한다

httpd는 docker container run을 통해 실행 가능하다


본격적으로 Docker 컨테이너에 파일 복사

  1. 레포지토리 클론

git clone 레포지토리 주소

  1. httpd 실행

docker container run --name 컨테이너 이름 -p 818:80 httpd

-p: 로컬 호스트의 포트컨테이너의 포트 연결
818:80에서 818은 로컬 호스트 포트, 80은 컨테이너 포트

터미널이 이렇게 되었다면 성공!

httpd 웹 서버 컨테이너가 정상적으로 실행됐다면 브라우저는 이렇게 뜬다

  1. 새로운 터미널을 열어서 로컬 호스트에 있는 파일을 컨테이너에 전달

docker container cp 명령어 사용

docker container cp ./ 컨테이너이름:/usr/local/apache2/htdocs

⭐️해당 명령어는 clone한 파일 디렉토리 내에서 해야 한다!!!


다음 포스팅은 Docker 이미지 만들기!
방금 만든 Docker Container를 이미지 파일로 변환하는 방법을 알아 보자

profile
안뇽

0개의 댓글