가장 먼저 도커 컨테이너를 확인하고
docker ps -a
docker rm -f `docker ps -a -q`
도커 컨테이너를 모두 삭제해 준다.
home/ubuntu/example 디렉터리에 있는 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을 수정해 준다.
다시 빌드하면 정상적으로 빌드가 된다.
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파일을 생성하여
를 작성하고 새로고침을 해보면
php 문법에 따라서 페이지가 잘 구성되는 것을 알 수 있다.
성공적으로 php를 컨테이너로 보내주고 php소스코드를 웹서버에서 확인할 수 있게 되었다.
이것으로 보면
이제 우리는 이미지 파일을 가지고 와서 간편하게 서버를 구축할 수 있게 되었다.
docker run -p 81:80 -v /home/ubuntu/example/html:/var/www/html example
을 이용하여 aws EC2에서 인바운드 규칙에 81번 포트를 열어준다면 81번으로 접속할수 있는 새로운 서버를 또하나 아주 간편하게 구축할 수 있게 되는것이다.
'Docker' 카테고리의 다른 글
[Docker] AWS RDS를 이용한 데이터베이스 구축 (0) | 2020.11.08 |
---|---|
[Docker] mysql과 php 컨테이너 연동 (0) | 2020.11.08 |
[Docker] AWS EC2에 mysql 컨테이너 설치 및 접속 (0) | 2020.11.08 |
[Docker] AWS EC2에 Docker 및 아파치 설치 (0) | 2020.11.08 |
AWS EC2 인스턴스에 Jupyter Notebook 설치 (0) | 2020.11.08 |