DevOps/Docker

Docker로 ubuntu, apache, php 환경의 이미지 만들기

Jen'_' 2021. 7. 15. 16:12
반응형

 

우분투 아파치 설치 방법

  • 래드햇, CentOS -> httpd
  • 데비안, Ubuntu -> apache2

 

1
2
3
4
5
6
7
8
[root@ip-192-168-0-10 ~]# docker run -it --name ubuntu-test ubuntu 
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
a31c7b29f4ad: Pull complete 
Digest: sha256:b3e2e47d016c08b3396b5ebe06ab0b711c34e7f37b98c9d37abe794b71cea0a2
Status: Downloaded newer image for ubuntu:latest
root@d64fc76ecd1a:/# uname -a
Linux d64fc76ecd1a 4.14.232-177.418.amzn2.x86_64 #1 SMP Tue Jun 15 20:57:50 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
cs
 

 

apache2 설치

1
2
3
4
5
root@d64fc76ecd1a:/# apt-get update
root@d64fc76ecd1a:/# apt-get upgrade
root@d64fc76ecd1a:/# apt-get install vim
root@d64fc76ecd1a:/# apt-get install apache2
 
cs

 

 

apache2 구동 명령어

  • sudo service apache2 start
  • sudo service apache2 enable   
  • sudo service apache2 stop    

 


apache 및 php5.6 개발환경 구축 

 

Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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"]
cs

 

-d와 -p 옵션을 써서 docker image를 띄어줍니다

1
2
3
[root@ip-192-168-0-10 test]# docker build -t apache .
[root@ip-192-168-0-10 test]# docker run -d -p 8080:80 --name apache-test apache
5c4ac77e11d8e16051e54c975f2152108c7b33639584f03296bf3c8a617aeadd
 
cs

 

  • -it 옵션으로 컨테이너 안에 들어가서 작업하려면 service apache2 start 해줘야 합니다

 

저는 EC2에서 작업했기 때문에 보안 그룹에서 8080포트를 열어줬습니다 

 

 

php 파일을 넣고 싶다면 컨테이너 안에서 작업해도 되지만 volume을 걸어서 작업해보겠습니다

  • -p(port) host port:container port
  • -v(volume) host path:container path

 

1
[root@ip-192-168-0-10 test]# docker run -d -p 8080:80 -v /root/test/html:/var/www/html --name apache-test apache
[root@ip-192-168-0-10 test]# cd html
[root@ip-192-168-0-10 html]# vi index.php
<?php phpinfo(); ?>
cs

 

다시 웹서버에 접속하면 웹페이지가 뜹니다!

 

반응형