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 |