Docker에서 ports are not available 오류...

라모스·2021년 8월 14일
0

삽질.log

목록 보기
1/12

docker-compose.yml 파일을 만들어 간단하게 테스트를 하는 중이었다.
wordpress를 띄우는 것인데, 해당 yml 파일은 다음과 같다.

version: '2'
services:
  db:
    image: mariadb:10.5
    volumes:
      - ./mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    image: wordpress:latest
    volumes:
      - ./wp:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress

그 결과 cmd창에선 다음과 같은 오류를 내뿜었다...

C:\Users\(사용자)\docker-test>docker-compose up -d

Creating network "docker-test_default" with the default driver

Creating docker-test_db_1 ...

Creating docker-test_wordpress_1 ... error

Creating docker-test_db_1        ... done

nd: An attempt was made to access a socket in a way forbidden by its access permissions.

ERROR: for wordpress  Cannot start service wordpress: Ports are not available: listen tcp 0.0.0.0:8000: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

ERROR: Encountered errors while bringing up the project.

아 그럼 ports를 8000:80이 아닌 8080이나 뭐 다른 번호로 설정해서 다시 실행해볼까? 했더니 이번엔 다음과 같이 localhost:8080에서 접속이 안된다... 시x
localhost에서 연결을 거부함

몇 시간동안 해결해보려고 애쓰고 구글링한 결과 port번호로 고생하셨던 어떤분의 글을 찾았다.
제가 참고했던 글

대충 요약하자면, 이미 8000번 port가 다른 이유로 사용이 금지되어 있기 때문이다.
다음 명령어를 입력하면 tcp 포트 제외 범위가 나오게 된다.

netsh interface ipv4 show excludedportrange protocol=tcp


내 결과는 8000번 대 port 번호가 제외범위 내에 있진 않지만, 며칠 전에 JPA를 공부하기 위해 H2 데이터베이스를 설치하여 띄우는 과정에서 localhost:8080에서 H2가 접속이 안됐을 때, 이리저리 둘러보다 일정 port 범위의 사용제한을 풀어 다시 세팅하는 과정을 겪었었다. (심지어 IntelliJ 자체도 실행이 안됐때가 있었음) 확실한 건 아니지만 위 캡쳐와 같이 시작~끝 포트에 8000번 대가 없는 건 그때 내가 8000번 대를 만졌기 때문이 아닐까 한다. 뭐 결론적으로 8000:80은 불가하고 8080은 될 것 같은데...

어찌 됐든 한참을 헤메다가 yml파일에서 8080:80으로 port번호를 수정하여 다시 docker-compose up을 시도...

오오 제발...!
오오오 제발...!
됐다!!!!
성공적...!

근본적으로 뭐가 문제였는진 나도 정확히 모르겠지만 일단 글로 정리해뒀다가 추후에 원인을 발견하게 되면 추가해야겠다.

// windows 환경에서 docker는 별로인거같다. 주문한 맥북 빨리 도착하길...

// cmd에서 서버 종료는 ctrl + c

profile
Step by step goes a long way.

0개의 댓글