필요성
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 를 입력, 접속해 보면 된다.
'서버&시스템 > Windows' 카테고리의 다른 글
docker desktop 컨테이너(이미지) 실행 에러 exited 139 (0) | 2023.09.01 |
---|---|
VScode 자주 쓰는 단축키 (0) | 2022.10.06 |
windows apm 환경에 sqlsrv 구성 추가하기 (0) | 2022.08.09 |