본문 바로가기
개발/php 아파치 세팅

3일 차: Docker 파일 만들기

by nicksoon 2024. 11. 15.
반응형

오늘은 기존 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에서 제공하는 다양한 이미지를 탐색해보는 것도 좋은 시작이 될 것입니다. 😊

반응형