본문으로 바로가기

docker - CentOS LAMP 개발 환경 구성 (Windows)

category 서버&시스템/Windows 2022. 7. 15. 13:09

필요성

 

APM 기반 웹서버의 개인별 개발 환경을 구성해야 하는 경우 흔히 XAMPP 를 사용해왔다.

그런데 늘상 발생하는 몇 가지 제약 사항이 있어서 불편하다.

 

  • 리눅스에서만 동작하는 함수들이 있다(strptime 등).
  • extension, 라이브러리 호환 문제(윈도우 dll, 리눅스 so 등).
  • 리눅스 명령어를 수행하는 경우(exec).

 

예전에야 vmware 등의 가상머신을 세팅하곤 하였지만 windows 용 docker 로 간단히 구성할 수 있다.

 

Docker Destop 설치, 이미지 확보

 

Install Docker Desktop on Windows 여기에서 exe 파일을 다운로드 받아 설치한다.

이제 누군가 예쁘게 공유해준 이미지가 있는지 찾아보자.

예쁘게 = 구성하고자 하는 서버, 미들웨어, DBMS 등의 버전과 동일한 구성

 

서비스 중인 웹 서버의 PHP 버전에 맞춰 php5.2.17 로 검색했더니 여러가지 이미지가 조회된다.

가장 적당해 보이는 이미지를 선택하여 Docker Pull Command 를 복사, cmd 에서 실행한다.

 

다운로드한 이미지 : https://hub.docker.com/r/yumechang/httpd22_php52

  • CentOS 6
  • Apache 2.2.15
  • PHP 5.2.17
  • MySQL 5.1.73
$ docker pull yumechang/httpd22_php52

 

세팅 및 실행

 

이미지를 실행하면 리눅스(CentOS)가 실행 될 것인데, 소스 코드가 존재하는 Windows 폴더를 서로 공유하기 위한 세팅을 해 준다.

 

1. Docker Desktop 설정

[ 설정(Settings) - Resources - File sharing ] 메뉴에서 공유하고자 하는 폴더를 선택 후 Apply & restart 클릭.

(아래 3번 단계에서처럼 명령어로 처리할 수도 있다)

 

2. 웹 서버 Document Root 확인

이미지에서 Run▶ 버튼을 클릭하여 실행, 실행된 컨테이너 터미널에서 아래 명령어 실행.

$ httpd -V | egrep 'ROOT|CONFIG'
 -D HTTPD_ROOT="/etc/httpd"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
$ cat /etc/httpd/conf/httpd.conf | grep 'DocumentRoot'
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/var/www/html"

경로가 /var/www/html  로 확인된다.

 

3. cmd 에서 컨테이너 생성

경로를 확인하느라 실행했던 컨테이너는 Stop■ 버튼을 클릭하여 종료, cmd 에서 이미지 실행.

$ docker run -it -p 80:80 -p 443:443 -v d:\dev:/var/www/html --name php52 yumechang/httpd22_php52:latest

 

이미지를 실행해서 생성된 컨테이너를 종료한 이후에 다시 실행하려면

$ docker start php52

 

마지막으로 브라우저를 실행해서 주소창에 localhost 를 입력, 접속해 보면 된다.