3일 차: Docker 파일 만들기

2024. 11. 15. 14:45개발/php 아파치 세팅

반응형

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

반응형