본문 바로가기
Docker

Docker httpd-WEB

by Nirah 2022. 12. 1.

httpd

 

httpd를 써서 w1이라는 이름으로 도커 이미지를 만들어보자.

# docker create -it --name w1 httpd

 

아래와 같이 로컬에 검색되는 이미지가 없으므로 자동으로 httpd의 최신버전을 다운로드를 한다.

 

만들어낸 도커 이미지의 자세한 ip 설정 옵션 등을 보려면

# docker inspect w1

 

아직 실행을 안했기 때문에 docker ps 명령어에선 안보이고

docker ps -a 명령어에만 보인다( 실행중이지 않은 프로세스도 보여주는 옵션)

# docker start w1

 

 

이번엔 w2라는 이름으로 포트 번호를 포워딩 지정해서 이미지를 하나 더 실행해보자.

# docker create -p 60080:80 --name w2 httpd

 

# docker start w2

다음과 같이w2의 Ports 항목에 지정한 옵션이 들어가있다.

 

도커의 아파치 html 파일의 내용을 확인해 보자.

# docker exec w2 cat /usr/local/apache2/htdocs/index.html

아래와 같이 파일 내용물을 확인하니 It works! 라고 띄우게 되어있다.

 

호스트 PC 인터넷 창에서 다음과 같이 접속해본다.

 

 

직접 접속 html 수정

 

#  docker exec w1 mkdir /test

#  docker exec w1 ls /

 

sh 쉘로 실행해보겠다.

# docker exec -it w1 /bin/sh

vi 명령어가 없으므로 cat으로 html을 수정해본다.

다음과같이 새로고침 하면 바꾼 내용이 잘 뜬다.

 

 

 

 

Q. httpd를 container로 실행 시켜서 웹 사이트 접속 시 텍스트가 출력되도록 이미지를 만든다.

이 이미지를 실행하여 만든 WEB 페이지를 다른 PC에서 접속할 수 있도록 한다.

 

그림으로 그려보면 다음과 같다.

설치 및 실행

# docker pull httpd

# docker -it -p 60080:80 --name shrshr httpd:latest

 

# docker exec -it shrshr /bin/bash

 

 

HTML 파일 작성

vi편집기가 없으므로 아래와 같은 두 가지 방법을 쓴다.

 

# cat > /usr/local/apache2/htdocs/index.html << EOF

> <html>
> <body>
> <h1> sonharin server docker man sei </h1>
> </body>
> </html>
> EOF

 

또는 echo를 통해 기존 index 파일에 덮어쓰기

# echo 'aar-webserver' > ./htdocs/index.html

exit

 

 

HOST PC 확인

# docker inspect shrshr

...

해당 컨테이너 ip 주소를 확인해 보니 172.17.0.4

(참고로 컨테이너 생성 순차적으로 부여된다)

 

리눅스나 도커에서 내부의 url이 잘 작동하는지 인터넷 창을 켜서 확인할 수가 없으니까

다음과 같은 명령어로 작동하는 지 확인한다.

 #curl 172.17.0.4

 

 

 

 

다른 PC 확인

참고로 도커 내부의 컨테이너에서는 방화벽을 안열어도 된다.

실행하는 프로세스에 맞춰 자동으로 열어준다.

 

VMware 에서 60080 -> 60080으로 포트포워딩

(상대방이 60080으로 접속하면 내부 리눅스머신 10.0.0.21에 60080번으로 포트 접속)

 

 

HOST PC 방화벽 열기

상대방의 60080번 포트 접속을 허용하기 위한 작업.

 

옆 PC에서 이쪽 HostPC 주소인 192.168.35.84:60080 을 주소창에 쳐서 접속

'Docker' 카테고리의 다른 글

다른 container로 image 옮기기 (export, import, 환경변수)  (0) 2022.12.08
HAProxy - WEB 연습  (0) 2022.12.08
Docker nginx-WEB  (0) 2022.12.08
Docker Hub  (0) 2022.11.30
Docker 설치 / 명령어  (0) 2022.11.29