겉바속촉

[DOCKER] 우분투 기반 도커 프로젝트 (feat. 웹 서버 접속) 본문

IT 일기 (상반기)/DOCKER

[DOCKER] 우분투 기반 도커 프로젝트 (feat. 웹 서버 접속)

겉바속촉 2021. 1. 13. 16:05
728x90
반응형

 


우분투 기반 도커 프로젝트


 

목표

  • 우분투 기반의 도커 이미지 생성
  • 생성한 이미지를 본인의 도커허브에 등록
  • 이미지에 bWAPP 설치 후 웹 접속시 bWAPP 페이지 출력

 

 

시행착

  • Xshell 연결 오류, 로컬 호스트 접속 오류  --> 인스턴스 EC2 생성해서 해결
  • 자동실행 오류  --> 자동실행 파일 생성

 

 

작업환경

VMware, ubuntu:18.04, Docker 19.03.13-ce

 

 


 

과정 1. 시작

 

 

1. 도커 설치 후 ubuntu 이미지 다운

docker pull ubuntu:18.04

 

2. 이미지 기반으로 컨테이너 작업

docker images   //다운받은 이미지 확인
docker run -i -t -d ubuntu:18.04          //이미지 기반으로 컨테이너 실행
docker ps           //도커 컨테이너 확인
docker exec -it 컨테이너 이름 /bin/bash    //컨테이너 접속

 

3. 컨테이너 접속 후 설치 -> 아파치, php, mysql 설치

 

아파치 설치

sudo -i
apt-get update -y
apt-get upgrade -y
apt-get install apache2 -y #nginx
apt-get install git -y #git
apt-get install zip -y
apt-get install wget -y 
apt-get install vim -y

mysql 설치

 apt-get install mysql-server mysql-client libmysqlclient-dev -y

 

php 설치

apt install software-properties-common -y
add-apt-repository ppa:ondrej/php
apt update
apt install php7.3 php7.3-common php7.3-cli php7.3-mysql -y   //region 설치 (6, 69)
apt install php7.3-bcmath php7.3-bz2 php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-readline php7.3-xml php7.3-zip -y
apt install libapache2-mod-php7.3

 

 

4. 컨테이너 나와서 컨테이너 및 이미지 확인

exit()
docker ps
docker images
docker exec -it 컨테이너이름 /bin/bash

 

5. bWAPP 설치

wget https://sourceforge.net/projects/bwapp/
sudo mkdir /var/www/html/bWAPP
sudo mv down /var/www/html/bWAPP/
cd /var/www/html/bWAPP/
ls
sudo unzip down

설치 확인

cd bWAPP/admin/
ls

서비스 상태 확인

sudo service mysql start
sudo service mysql status
sudo service apache2 start
sudo service apache2 status

vim에서 username과 password 수정

vi settings.php

 

mysql 로그인 확인

mysql -u root -p
show databases;

 

권한 주기

sudo chmod 777 documents/
sudo chmod 777 images/
sudo chmod 777 passwords/
sudo chmod 777 logs/
ls -ld documents images passwords logs

 

***mysql 접속 안될 경우***

 

<터미널>

mysql -u root -p
use mysql;
create user 'id'@'localhost' identified by 'password';
grant all priviledges on bWAPP.* to 'id'@'localhost' identified by 'password';

<vim>

$db_username = "id";
$db_password= "password";

 

 

컨테이너 작업

docker run -i -t -d -p 9999:80 이미지명 /bin/bash

 

커밋으로 이미지 생성

docker commit 컨테이너명 --tag 이미지명:태그명
docker run -i -d -t -p 9999:80 이미지명:태그명

 

웹서버로 확인

http://localhost:9999/bWAPP/bWAPP/install.php

 

here 클릭 까지 완료하면 설치 끝!!!

 

 

로그인화면으로 확인

http://localhos:9999/bWAPP/bWAPP/login.php

 

과정 2.  오류해결

 

  • localhost로 크롬창에서 확인
  • 하지만 페이지를 찾지 못하고 오류발생  --->  인스턴스 EC2 생성으로 해결

 

 

EC2 인스턴스 생성하는 방법은 ~~~  다음 포스팅 참고

 

AWS_EC2생성하기

 

[CLOUD] AWS_EC2생성하기

AWS Service Scope -Global :IAM,S3 bucket_name -Region:S3 -AZ : ec2,EBS 이번에는 EC2를 생성해볼게요 현재 루트계정으로 콘솔로그인 상태입니다:) 인스턴스 시작 클릭하면 다음과 같이 7단계가 뜹니다 1단계..

2-juhyun-2.tistory.com

 

 

 

 

 

다음 퍼블릭 주소로 Xshell에서 연결

 

 

 

 

 

  • 자동실행 오류 --> 자동실행 파일 생성 : dockerfile, service.sh

 

 

module-project 폴더 생성 후 그 내부에 파일 생성

 

 

dockerfile

FROM juhyun9086/juhyun:1.1

Add ./service.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/service.sh
ENTRYPOINT ["/usr/local/bin/service.sh"]
HEALTHCHECK --interval=1m --timeout=3s --retries=2 CMD curl http:localhost/bWAPP/bWAPP/login.php || service mysql start

 

service.sh (dockerfile과 같은 곳에 위치)

#!bin/bash

service mysql start

/usr/sbin/apache2ctl -D FOREGROUND

 

 

build 해주기 (현재 위치에서)  --> 이미지 생성 

docker build .-t id/이미지명:태그명

 

 

Docker Hub에 push

docker login
docker push build

 


 

 

과정 3. 확인

 

1. 컨테이너 확인 및 실행

docker ps   //컨테이너 실행 여부 확인
docker images  //이미지 확인

docker run -i -t -d -p 9999:80 이미지명:태그명  //포트포워딩주면서 실행

 

 

2. 크롬창에서 확인

 

 

아파치 디폴트 페이지 확인

 

 

install 페이지 확인

 

 

login 페이지 확인

 

 

 

 

 

728x90
반응형

'IT 일기 (상반기) > DOCKER' 카테고리의 다른 글

[DOCKER] 모듈1 끝난 기념 정리  (0) 2021.01.15
[DOCKER] MySQL DB 다루기 & bWapp  (0) 2021.01.11
[DOCKER] MySQL 비밀번호 변경하기  (2) 2021.01.11
[DOCKER] MySQL 설치  (0) 2021.01.11
[DOCKER] PHP 설치  (0) 2021.01.11