오늘은 기존 Apache와 PHP 설정을 기반으로, Dockerfile을 작성하고 Docker 이미지를 생성하여 실행 가능한 컨테이너 환경을 만드는 과정을 정리합니다. 이를 통해 서버 환경을 어디서나 손쉽게 배포하고 실행할 수 있습니다.
1. Docker와 Dockerfile 소개
- Docker는 애플리케이션과 관련된 모든 환경(코드, 라이브러리, 설정)을 컨테이너라는 단일 패키지로 묶어 배포할 수 있는 플랫폼입니다.
- Dockerfile은 Docker 이미지를 생성하기 위한 명령어와 구성을 정의한 파일입니다.
2. Docker 설치
2.1 시스템 업데이트
Docker 설치 전, 시스템 패키지를 최신 상태로 업데이트합니다:
sudo apt update
sudo apt upgrade -y
2.2 Docker 종속 패키지 설치
Docker를 설치하기 위한 필수 패키지를 설치합니다:
sudo apt install docker.io -y
2.3 Docker 설치 확인
Docker가 정상적으로 설치되었는지 확인합니다:
docker --version
#출력 예시
Docker version 20.10.21, build baeda1f
2.4 Docker 서비스 확인
Docker 서비스가 실행 중인지 확인합니다:
sudo systemctl status docker
#출력 예시:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running)
3. Docker 환경 구성
2.1 디렉토리 구조 준비
Docker 이미지 생성을 위해 아래와 같은 디렉토리 구조를 준비합니다:
/program-docker-setup/
├── Dockerfile # Docker 이미지 정의 파일
├── php.ini # PHP 설정 파일
└── app/ # 애플리케이션 코드
├── index.php # PHP 시작 파일
└── other files # 추가 애플리케이션 파일
2.2 Dockerfile 작성
program-docker-setup 디렉토리 안에 Dockerfile을 작성합니다.
sudo nano /program-docker-setup/Dockerfile
4. Dockerfile 작성
4.1 Dockerfile 코드 예제
아래는 PHP와 Apache를 포함한 Docker 이미지를 생성하기 위한 예제입니다:
# Step 1: PHP 8.2와 Apache 기반 이미지 사용
FROM php:8.2-apache
# Step 2: 필요한 PHP 확장 설치
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd mysqli pdo pdo_mysql \
&& a2enmod rewrite
# Step 3: 커스터마이즈된 php.ini 복사
COPY php.ini /usr/local/etc/php/
# Step 4: 애플리케이션 코드 복사
COPY ./app /var/www/html
# Step 5: 권한 설정
RUN chown -R www-data:www-data /var/www/html && chmod -R 755 /var/www/html
# Step 6: Apache 서비스 실행
CMD ["apache2-foreground"]
5. Docker 이미지 생성
5.1 Docker 이미지 빌드
seo-docker-setup 디렉토리로 이동하여 Docker 이미지를 빌드합니다:
cd /seo-docker-setup
docker build -t program-docker-image .
- -t program-docker-image: Docker 이미지 이름을 지정.
- .: 현재 디렉토리를 빌드 컨텍스트로 사용.
4.2 빌드 성공 확인
이미지가 성공적으로 빌드되었는지 확인합니다:
docker images
#출력 예시:
REPOSITORY TAG IMAGE ID CREATED SIZE
seo-docker-image latest 123456789abc 10 seconds ago 502MB
5. 정리 및 다음 단계
오늘은 Docker를 설치하고 기본적인 설정과 테스트까지 완료했습니다. 이제 Docker를 사용하여 컨테이너 기반 환경을 구축할 준비가 되었습니다.
다음 단계로 Dockerfile 작성과 컨테이너 생성을 통해 애플리케이션을 배포할 수 있습니다. 하지만 이 작업은 이후에 천천히 진행할 예정이니, 우선 Docker 설치에 익숙해지며 환경을 다듬는 시간을 가져보세요.
Docker의 강력함은 설치 후 천천히 활용하면서 자연스럽게 익힐 수 있습니다. 다음 작업을 시작하기 전까지는 기본 명령어를 연습하거나, Docker Hub에서 제공하는 다양한 이미지를 탐색해보는 것도 좋은 시작이 될 것입니다. 😊
'개발 > php 아파치 세팅' 카테고리의 다른 글
2일 차: HTTPS 설정 및 무료 SSL 인증 (7) | 2024.11.14 |
---|---|
1일 차: 아파치와 PHP 설치 및 환경 구성 (0) | 2024.11.13 |