도커를 동작하는 많은 소프트 웨어는 네트워크를 이용한다.
(연습으로 사용하는 아파치 웹서버도 네트워크 위에서 동작한다.)
아파치 웹서버는 80번 포트에서 접속을 대기하고 있도록 설정되어 있다.
웹서버가 설치된 주소를 주소창에 입력하게되면 웹 브라우저는 80번 포트로 접속하게 된다.
대기중인 웹서버로 요청이 전달된다.
html 파일을 읽어서 웹브라우저에게 코드를 전달한다.
컨테이너와 호스트 모두 독립적인 실행환경이기 때문에 각자 독립적인 포트와 저장장치를 가지고 있다.
웹브라우저로 웹서버에 접속을 하려면 호스트의 포트와 컨테이너의 포트를 연결해줘야한다.
(80번 포트로 연결을 할 때)docker run -p 80:80 httpd호스트와 컨테이너의 포트 번호가 연결되엇다.
앞에서의 80은 호스트의 포트번호이고 뒤에 80은 컨테이너의 포트번호이다.

8080 -> 80 컨테이너를 성생후 접속

컨테이너가 생성조차 되지가 않았다.
failed to run image. (http code 500) server error - ports are not available: exposing port tcp 0.0.0.0:8080 -> 0.0.0.0:0: listen tcp 0.0.0.0:8080: bind: an attempt was made to access a socket in a way forbidden by its access permissions.
이런 에러가 떴었는데 포트번호가 겹친다는 내용이다.
cmd 창에서
netstat -ano | findstr 8080
명령어를 입력했을때 아무런 메세지가 반환되지 않는다면 해당 포트는 사용중이 아닌것이다.
해당 포트가 사용중이 아닌데 위에 에러가 발생하면 그냥 재부팅 하면 된다....