본문 바로가기

Docker

[Docker] AWS EC2에 php 설치

반응형

가장 먼저 도커 컨테이너를 확인하고

docker ps -a

docker rm -f `docker ps -a -q`

도커 컨테이너를 모두 삭제해 준다.

 

home/ubuntu/example 디렉터리에 있는  Dockerfile을 수정해 준다.

 

Dockerfile

php 5.6을 설치하기 위해서 

 

1. apt-get install -y software-properties-common

- php 5.6 repository를 추가해 주기위해. software-properties-common을 설치한다.

 

2. add-apt-repository ppa:ondrej/php 

- php 5.6 repository를 설치한다.

 

3. apt-get install -y php5.6

- 실제로 php5.6을 설치해 준다.

 

위 설정을 마친뒤 다시 빌드해 준다.

 

docker build -t example .

빌드를 하던중 위와같이 지역을 입력해야 하는 옵션 부분이 나타날 수 있는데 

우리는 docker image파일을 빌드하는 중이기 때문에 정상적으로 입력값을 넣어줄 수 없다.

그러므로 Dockerfile을 수정해 줘야 한다.

 

우선 빌드되고 있는 이미지파일을 ctrl+z를 이용하여 종료해 준다.

 

Dockerfile

위와같이  Dockerfile을 수정해 준다.

 

다시 빌드하면 정상적으로 빌드가 된다.

 

docker images를 <none>이라고 하는 사용하지 않는 이미지 파일들이 있는데

docker rmi -f {image id} 를이용해서 삭제해 준다.

 

이미지가 컨테이너에서 사용중이라면 삭제가 불가능 하므로 그 이미지를 사용하는 컨테이너를 삭제한 후 이미지 파일을 삭제해 준다.

 

우리가 수정한 이미지파일을 컨테이너에 담아서 실행해 준다.

docker run -p 80:80 -v /home/ubuntu/example/html:/var/www/html example

 

-v 옵션을 넣어서 마운트를 진행한다.

 

현재 호스트의 home/ubuntu/example/html 폴더와 컨테이너 내부에 있는 폴더(php 기본적인 경로) /var/www/html 

경로를 서로 연결해 준다.

위와같이 마운트를 진행해 주면 호스트에 html폴더에 파일을 추가하면 컨테이너의 /var/www/html 폴더에 파일을 추가한 것과 같은 효과가 된다.

 

80포트로 접속을 해보면 위와같이 나타나는 것을 알 수 있다.

 

host의 home/ubuntu/example/html 디렉터리에 index.php파일을 생성하여 

index.php

를 작성하고 새로고침을 해보면 

php 문법에 따라서 페이지가 잘 구성되는 것을 알 수 있다.

 

성공적으로 php를 컨테이너로 보내주고 php소스코드를 웹서버에서 확인할 수 있게 되었다.

 

 

이것으로 보면

이제 우리는 이미지 파일을 가지고 와서 간편하게 서버를 구축할 수 있게 되었다.

docker run -p 81:80 -v /home/ubuntu/example/html:/var/www/html example

을 이용하여 aws EC2에서 인바운드 규칙에 81번 포트를 열어준다면 81번으로 접속할수 있는 새로운 서버를 또하나 아주 간편하게 구축할 수 있게 되는것이다.

반응형