[Docker] multi-tier 컨테이너 구축 문제

제이브로·2024년 2월 23일
0

Docker

목록 보기
41/48
post-thumbnail

1. 문제

1.1 Container 빌드

다음의 Container를 빌드 하시오.

$ cat genid.sh : shell파일 만들기

#!/bin/bash
mkdir -p /webdata
while true
do
  /usr/bin/rig | /usr/bin/boxes -d boy > /webdata/index.html
  sleep 5
done

$ cat dockerfile : dockerfile 만들기

FROM ubuntu:18.04
RUN apt-get update
RUN apt-get -y install rig boxes
ADD genid.sh /bin/genid.sh
RUN chmod +x /bin/genid.sh
ENTRYPOINT ["/bin/genid.sh"]

$ docker build -t genid .

1.2 multi-tier 컨테이너 구축

빌드 한 container를 이용해 multi-tier 컨테이너를 구축

  • genid에서 생성한 index.html은 volume을 통해 nginx의 웹 컨텐츠로 공유 되어야 합니다.
  • nginx 웹서버는 80포트를 통해 genid가 생성한 html 문서를 고객에게 서비스 합니다.

1.3 결과

  • genid는 웹문서를 생성하고, nginx는 고객에게 서비스 하는 형식으로 운영됩니다.

2. 풀이

2.1 Container 빌드

genid.shdockerfile 만들고 container 빌드

$ vim genid.sh : shell파일 만들기

#!/bin/bash
mkdir -p /webdata
while true
do
  /usr/bin/rig | /usr/bin/boxes -d boy > /webdata/index.html
  sleep 5
done

$ vim dockerfile : dockerfile 만들기

FROM ubuntu:18.04
RUN apt-get update
RUN apt-get -y install rig boxes
ADD genid.sh /bin/genid.sh
RUN chmod +x /bin/genid.sh
ENTRYPOINT ["/bin/genid.sh"]

$ docker build -t genid .로 컨테이너이미지 빌드

2.2 Container 실행

컨테이너 실행

  • $ docker run -d -v /webdata:/webdata --name genid genid
  • $ docker run -d --name web -v /webdata:/usr/share/nginx/html:ro -p 80:80 nginx:1.14

2.3 Result(?)

.-"""-. / .===. \ \/ 6 6 \/ ( _/ ) _ooo___/____ / \ | Elvin Jennings | | 996 Sunrise Rd | | Anderson, IN 46018 | | (317) xxx-xxxx | ___ooo/ | | | | | _| | | | ||| /-'Y'-\ (__/ __)

?? 이런 느낌일까요? (당황)

 .-"""-.
/ .===. \
\/ 6 6 \/
( \___/ )
  _ooo__
 \_____/______ /\
 | Elvin Jennings |
 | 996 Sunrise Rd |
 | Anderson, IN 46018 |
 | (317) xxx-xxxx |
 \_______________ooo_/
 | | | |_ | _| | | |
      |__|__|
     /-'Y'-\
    (__/ \__)

3. References

  1. ttabae youtube
profile
기록하지 않으면 기록되지 않는다.

0개의 댓글