logoStephen's 기술블로그

포스트 검색

제목, 태그로 포스트를 검색해보세요

#003 #빌드하기

#003 #빌드하기
Docker
성훈 김
2024년 6월 10일
목차

👉 간단 개념정리

 
notion image
컨테이너가 날라가면 이 작업들은 다 날라간다. 
그러니 커밋 잘 해야된다.
컨테이너가 날라가면 이 작업들은 다 날라간다. 그러니 커밋 잘 해야된다.
 

🔹 일단 다지우고 시작하자 컨테이너 / 이미지들

notion image
깨끗하게 하고 시작해야 안헷갈린다.
깨끗하게 하고 시작해야 안헷갈린다.
 

👉 도커 파일, 프로비저닝

🔹 프로비저닝??

JavaScript
# 프로비저닝이란???
- IT 인프라를 생성하고 설정하는 프로세스 
- 프로비저닝은 사용자의 요구에 맞게 시스템 자원을 할당, 배치 배포해 두었다가 필요시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. 
- 수작업을 최소화하고 스크립트로 짜놓는 것
- docker 파일을 활용해야된다. 
 

👉 Dockerfile작성

🔹 폴더구조 생성

notion image
ex01 폴더를 만들고 >> www 폴더 만들고 내부에 index.html 생성
ex01 내부 최상위에는 Dockerfile 생성 (이거 철자 틀리면 안됨!!)
ex01 폴더를 만들고 >> www 폴더 만들고 내부에 index.html 생성 ex01 내부 최상위에는 Dockerfile 생성 (이거 철자 틀리면 안됨!!)
notion image
톰캣없이 아파치만 사용하는 환경
CMD는 리눅스 명령어, 이미지가 실행될 때 자동으로 실행되게 할 수 있다.
톰캣없이 아파치만 사용하는 환경 CMD는 리눅스 명령어, 이미지가 실행될 때 자동으로 실행되게 할 수 있다.
 

🔹 COPY 명령어 설명

notion image
로컬에 있는 폴더를 도커시스템에 복사하는 것, 소프트 링크가 아니다.
로컬에 있는 폴더를 도커시스템에 복사하는 것, 소프트 링크가 아니다.
notion image
./www 폴더를 /usr/local/apache2/htdocs로 옮기겠다는 뜻, 오른쪽은 아파치에서 사용하는 폴더

index.html을 ./www 내부에 만들어놓으면 아파치서버로 옮겨진다.
./www 폴더를 /usr/local/apache2/htdocs로 옮기겠다는 뜻, 오른쪽은 아파치에서 사용하는 폴더 index.html을 ./www 내부에 만들어놓으면 아파치서버로 옮겨진다.
 

👉 톰캣 없이 아파치서버 만들기

notion image
JavaScript
docker run -dit -p 8080:80 httpd:2.4
httpd로 도커를 실행한다. 
톰캣없이 아파치만 실행하는 환경
httpd로 도커를 실행한다. 톰캣없이 아파치만 실행하는 환경
 
notion image
docker ps 명령어로 
ContainerID를 찾는다. → 42f0
docker ps 명령어로 ContainerID를 찾는다. → 42f0
 
notion image
docker exec -it 42f0 bash로 실행해서 
컨테이너 bash로 들어가본다.
docker exec -it 42f0 bash로 실행해서 컨테이너 bash로 들어가본다.
 

🔹 웹서버 폴더 파악 하기

JavaScript
// index.html을 찾아주는 명령어
find / -name index.html
notion image
엄청 많이 나온다.
엄청 많이 나온다.
notion image
여기가 웹서버 폴더라는 뜻!
여기가 웹서버 폴더라는 뜻!
notion image
일단 먼저 웹서버 폴더로 이동하고 
cat 명령어로 해당 파일이 가지고있는 내용을 확인한다. 
헤더1 태그로 it works!가 보이긴 하다.
일단 먼저 웹서버 폴더로 이동하고 cat 명령어로 해당 파일이 가지고있는 내용을 확인한다. 헤더1 태그로 it works!가 보이긴 하다.
notion image
Localhost:8080 으로 들어가보니 해당 문구가 걍 나온다. 
웹 서버 폴더에서 자동으로 index.html을 찾아서 보여주는 듯
Localhost:8080 으로 들어가보니 해당 문구가 걍 나온다. 웹 서버 폴더에서 자동으로 index.html을 찾아서 보여주는 듯
 

🔹 열려있는 포트 안내표시

notion image
EXPOSE 80은 해당 포트가 열려있다는 안내문 같은 것.
EXPOSE 80은 해당 포트가 열려있다는 안내문 같은 것.
notion image
./www는 현재 폴더를 나타내고, 
해당 폴더 내의 index.html을 수정해서, 아파치 서버에 복사해줄 것이다. 
그게 Dockfile이 하는일!!
./www는 현재 폴더를 나타내고, 해당 폴더 내의 index.html을 수정해서, 아파치 서버에 복사해줄 것이다. 그게 Dockfile이 하는일!!
 

👉 빌드하기

🔹 도커파일을 열어보자.

notion image
도커파일만 있으면 프로비저닝을 할 수 있다.
도커파일만 있으면 프로비저닝을 할 수 있다.
 

🔹index.html 설정하기

notion image
오늘 완준이가 많이 졸아서, 완준이 코골이로 간단하게 작성해보자.
오늘 완준이가 많이 졸아서, 완준이 코골이로 간단하게 작성해보자.
 

🔹 빌드 명령어와 태그 남기기

notion image
ex01 폴더로 이동해서 아래 명령어를 입력한다.
ex01 폴더로 이동해서 아래 명령어를 입력한다.
JavaScript
// 빌드 명령어와 태그 남기기
docker build -t wanjun1 .
원래 wanjun .Dockfile 을 붙여줘야 되지만
도커파일(Dockerfile)은 키워드이기 떄문에 생략이 가능하다. 
-t는 태그 명령어로, 나중에 wanjun이란 이름으로 쉽게 찾기 위해서 설정하는 것이다.
원래 wanjun .Dockfile 을 붙여줘야 되지만 도커파일(Dockerfile)은 키워드이기 떄문에 생략이 가능하다. -t는 태그 명령어로, 나중에 wanjun이란 이름으로 쉽게 찾기 위해서 설정하는 것이다.
 
notion image
실행하기
실행하기
notion image
docker images로 확인
docker images로 확인
 
notion image
JavaScript
// 실행 코드
docker run -d -p 9000:80 wanjun1
정상적으로 실행되면 해시값을 받음.
정상적으로 실행되면 해시값을 받음.
 
notion image
localhost:9000 으로 접속하면 해당 글귀가 보이게 된다.
localhost:9000 으로 접속하면 해당 글귀가 보이게 된다.
프로젝트에 도커파일만 있으면 된다.
프로젝트에 도커파일만 있으면 된다.