reference : 시작하세요!도커/쿠버네티스-용찬호 지음
1. 컨테이너 외부에 노출시키기
컨테이너는 가상 IP주소를 할당받는다. 기본적으로 172.17.0._의 IP를 순차적으로 할당받게 된다.
컨테이너 내에서 ifconfig 명령어를 통해 다음과 같이 확인할 수 있다. ->명령어에서 오류나면 해결법
도커의 가상 IP는 172.17.0.4 임을 알 수 있다.
이는 local host를 의미한다.
컨테이너가 외부에서 접근할 수 있으려면, eth0의 IP와 포트를 호스트의 IP와 포트에 바인딩해야 한다.
1
|
$ docker run -it --name webserver -p 3306:3306 -p 80:80 ubuntu:18.04
|
cs |
-p 옵션을 통해 컨테이너 포트를 호스트의 포트와 바인딩해서 연결해줄 것이다. 이때 80:80은 [호스트 포트]:[컨테이너 포트] 이다. 꼭 80:80으로 할 필요는 없으며, 호스트 포트를 특정 IP주소:포트 로 사용해도 된다.
아파치 웹 서버가 기본적으로 80번 포트를 사용한다고 해서 80:80으로 설정해주었다.
이후 docker ps 로 어느 포트와 연결됐는지 PORTS에서 확인할 수 있다.
처음 컨테이너로 들어오면 apt-get update가 필수다. 아니면 에러가 발생해서 명령어를 사용하지 못한다. 현재 아파치 웹 서버를 설치할 것이기 때문에 다음과 같이 명령어를 입력해주었다.
1
2
3
|
apt-get update
apt-get install apache2 -y
service apache2 start
|
cs |
마지막 명령어를 입력했을 때, 다음과 같은 에러를 마주하게 되었다.
해당 참고 자료에서는, ServerName을 지정해줄 것을 제안한다.
1
2
3
|
$ echo "ServerName localhost" >> /etc/apache2/apache2.conf
$ grep ServerName /etc/apache2/apache2.conf
apache_webserver localhost
|
cs |
이때 처음에 "ServerName"이 사용자 지정 서버 이름을 넣는 줄 알고 바꿔줬더니, Syntax Error가 발생했다.
명령어 그대로 ServerName을 쓰도록 한다..
* The apache2 configtest failed. Output of config test was: AH00526: Syntax error on line 228 of /etc/apache2/apache2.conf: |
다시 시도해보았다.
apache 웹 서버가 실행되고 있다는 문구가 떴다.
하지만 실제 웹브라우저에서 확인했을 때 자꾸 연결할 수 없다고 나오는데.......
localhost:80 localhost:3306에 연결이 안된다.. 뭐가 문제인걸까??
'AWS, Docker > Docker' 카테고리의 다른 글
Docker toolbox 삭제하기 (0) | 2022.02.22 |
---|---|
Docker 활용하기 <2. 로컬에서 컨테이너로 파일 공유> (0) | 2022.02.18 |
Docker 시작하기 <Error 기록> (0) | 2022.02.17 |
Docker 시작하기 <4. docker compose> (0) | 2020.08.11 |
Docker 시작하기 <3.Image> (0) | 2020.06.28 |