본문 바로가기
클라우드/Docker

[AWS 플젝 / Docker] Docker 이미지 생성

by cloudgarden 2024. 12. 5.

1. 기존에 만들었던 php 파일들을 docker로 이미지 만들기

프로젝트 파일을 한 곳에 정리하고 보기 편할 수 있도록 

mkdir /home/ubuntu/project

cd /home/ubuntu/project

 

project 하단에 도커 파일 생성

*대문자 주의

 

###########################################################################################

vi Dockerfile

 

# PHP와 Apache를 포함한 기본 이미지 사용
FROM php:8.1-apache

# 작업 디렉토리 설정
WORKDIR /var/www/html

# 필요한 확장 프로그램 설치 (MySQL 확장 포함)
RUN docker-php-ext-install mysqli

# 현재 디렉토리의 모든 파일을 컨테이너의 작업 디렉토리로 복사
COPY . /var/www/html

 

:wq

 

#####################################################################################

 

2. /var/www/html/ 에 만들어 두었던 php 파일들을 도커로 이미지화 시킬거다!

그래서 cp 해서 새로 만든 project 디렉터리에 복사해오기 

 

cp -r /var/www/html/* /home/ubuntu/project/

 

var/www/html에 생성한 모든 php 파일을 /home/ubuntu/project/으로 복사하기

복사 확인된 거 확인

 

 

3. 도커 이미지 빌드

docker build -t project .

 

docker images

생성된 도커 이미지 확인

 

docker run -d -p 8080:80 project

빌드한 이미지를 사용하여 컨테이너 실행

도커 이미지를 기반으로 새 컨테이너를 실행하기

 

=> Apache2 Web 서버가 실행되는 도커 컨테이너가 생성됨

이제 http://"공인 IP":8080 를 하면 web 서버에 접근 가능

 

http://15.164.96.168:8080

*오류가 떠서 확인해보니 80은 이미 apache2 가 점유 중이므로,

docker 컨테이너 web server을 8080 포트로 설정

그러기 위해서는 Docker와 Kubernetes 용으로 사용하는 EC2 SG에 8080 열어두기

 

http://15.164.96.168:8080 재실행

성공!!