본 포스팅은 동빈나 님의 Docker 활용 및 배포 자동화 실전 초급을 보고 정리한 글입니다.
우선 docker ps 명령어로 모든 컨테이너를 삭제하는 것으로 시작하도록 하겠습니다.
sudo docker ps -a sudo docker rm -f `docker ps -a -q` # 또는 sudo docker rm -f 5
docker에 php 설치를 위해 Dockerfile을 수정하도록 합니다.
FROM ubuntu:18.04
MAINTAINER Wimes <dev.wimes@gmail.com>
RUN apt-get update
RUN apt-get install -y apache2 # install Apache web server (Only 'yes')
RUN apt-get install -y software-properties-common # php 5.6(이전버전) 설치를 위해
RUN add-apt-repository ppa:ondrej/php # For Installing PHP 5.6
RUN apt-get update
RUN apt-get install -y php5.6
EXPOSE 80
CMD ["apachectl", "-D", "FOREGROUND"]
sudo docker build .
그런데 설치를 하다가 보면 위의 사진처럼 어떠한 옵션을 입력하라고 나오는데 우리는 아무것도 입력할 수가 없습니다.
이렇게 추가적인 입력을 요구할 수 있는 것은 미연에 방지하는 것이 중요합니다.
Dockerfile을 열어 환경 변수를 추가해주도록 합니다.
FROM ubuntu:18.04
MAINTAINER Wimes <dev.wimes@gmail.com>
# Avoiding user interaction with tzdata
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -y apache2 # install Apache web server (Only 'yes')
RUN apt-get install -y software-properties-common # php 5.6(이전버전) 설치를 위해
RUN add-apt-repository ppa:ondrej/php # For Installing PHP 5.6
RUN apt-get update
RUN apt-get install -y php5.6
EXPOSE 80
CMD ["apachectl", "-D", "FOREGROUND"]
sudo docker build .
성공적으로 설치가 완료되었다면 images에 기존에 있거나 설치에 실패한 images는 none으로 변경되고 새롭게 만들어진 example image를 볼 수 있습니다.
sudo docker images
우리는 기존의 none 이미지를 지워주도록 합니다.
sudo docker rm -f `sudo docker -p -q` sudo docker rmi -f {image id}
이제 우리가 만든 docker server image를 띄어주도록 합니다.
sudo docker run -p 80:80 -v /home/ubuntu/example/html:/var/www/html example
sudo docker run
: docker를 실행합니다.
80:80
: host(현재 도커가 실행되는 곳, 즉 EC2)의 포트와 docker 이미지의 80포트를 마운트 해줍니다.
/home/ubuntu/example/html:/var/www/html
: host의 /home/ubuntu/example/html 경로와 docker container /var/www/html 경로를 볼륨 마운트 해줍니다.
(참고로 /var/www/html은 php의 기본적인 경로, php 소스코드가 놓이는 default 경로)
host의 경로(/home/ubuntu/exmaple/html)에 어떠한 파일을 넣게 되면 docker container(/var/www/html)에 자동으로 놓이게 됩니다.
example
: example이라는 name의 docker image를 실행
이제 http://52.78.192.164:80 으로 들어가보면 다음과 같은 화면을 볼 수 있습니다.
이제 php 소스코드를 작성해줍니다.
cd /home/ubuntu/example/html sudo vim index.php
<?php phpinfo(); ?>
이제 다시 http://52.78.192.164:80 으로 가보면 다음과 같은 화면을 볼 수 있습니다. (php의 info를 보여줍니다.)