apache 컨테이너 생성
윈도우즈 Docker에서 Apache 컨테이너 생성하는 방법.
지난번 포스팅(mariadb)에서는 이미지를 미리 다운받지 않고, 설치 과정에서 자동으로 다운받는 방법을 사용했습니다.
이번에는 미리 이미지를 다운받고 진행하겠습니다.
아파치 이미지는 Docker hub에 httpd 라는 이름으로 등록되어있습니다.
터미널에 docker pull httpd:latest를 입력하시면 이미지를 하나 다운받게 됩니다.
image 목록에 httpd가 있는 것을 볼 수 있다.
콘솔창에 다음 명령문을 입력하여 컨테이너를 생성합니다.
docker run -d --name <이름> -p <호스트포트>:<컨테이너포트> -v <호스트폴더>:<컨테이너폴더> <image이름>:<버전>
-d : 데몬으로 실행(백그라운드 실행)
-p : 바인딩 해줄 호스트 포트와 컨테이너 포트를 지정합니다.
-v : volume. 공유폴더로 사용할 폴더를 지정함. 여기서는 apache의 웹 문서 디렉토리에 접근하기 편하도록 공유폴더로 지정합니다.
생성된 것을 확인하고, 만약에 종료 했다면 start 버튼을 누르거나 콘솔창에 docker start 컨테이너명 입력해서 실행해 줍니다.
웹브라우저 주소창에 localhost:8080 혹은 127.0.0.1:8080 을 입력하여 접속이 되는지 확인을 합니다.
접속이 잘 됩니다.
테스트용 페이지 index.html을 만듭니다
아까 지정했던 htdocs 폴더에 index.html을 넣겠습니다.
index.html 파일을 -v <호스트폴더>:<컨테이너폴더> 에서 작성한, 호스트폴더에 넣고 컨테이너 폴더를 확인해보면 잘 들어간 것을 볼 수 있습니다.
다시 웹브라우저에 localhost:8080 을 입력하여 방금 생성한 index.html이 잘 적용되는지 확인합니다.
외부에서 웹서버 접속하기
외부에서도 접속을 해봅니다.
노트북이나 휴대폰으로 컴퓨터ip주소:8080을 입력하여 접속되는지 확인합니다.
안된다면 포트포워딩을 설정합니다.
저의 경우에는 skb를 사용하는데 80, 8080 포트가 막혀있었습니다.
ip:55555 를 내부ip:8080 으로 포트포워딩 설정을 해주었습니다.
다시 외부에서 접속을 시도합니다. 포트를 55555로 설정하였으니, ip주소:55555 로 접속을 합니다.
그래도 안되면 방화벽 인바운드 설정을 변경합니다. 저는 포트포워딩만 수정하니 되었습니다.
| 외부IP | 외부포트 | 내부IP | 로컬포트 | 도커포트바인딩 |
| a.a.a.a | 55555 | x.x.x.x | 8080 | 8080:80 |
위 표가 제 설정입니다.
외부ip는 isp(skb, kt, lg)에서 저에게 할당해주는 ip입니다.
휴대폰으로 a.a.a.a:55555 로 접속을하면, 컴퓨터의 8080으로 연결이됩니다.
x.x.x.x:8080 은 다시 127.0.0.x:80(httpd) 으로 연결됩니다.
-끝-