docker-compose.yml 파일의 첫번째 라인을 보면 대체적으로 version: "x.x"가 쓰여져 있다.

이 version은 내가 설치한 docker-compose의 버전과는 docker-compose.yml의 설정 버전을 의미한다. 이 설정은 Docker Compose 파일에서 사용할 수 있는 구문과 기능을 결정한다.

 

버전별 차이점

version: "3.1"

환경변수가 자동으로 설정되지 않아서 database의 유저와 데이터베이스를 새로 만들어야 했다.

 

version: "3.9" (현재 최신 버전)

환경변수가 자동으로 설정되어 첫실행에서도 데이터베이스와 유저가 생성되어 있어서 바로 백엔드와도 연결됐다.

 


 

카페에서 도커를 실행하려고 하는데 이러한 에러가 났다.

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3000 -> 
0.0.0.0:0: listen tcp 0.0.0.0:3000: bind: An attempt was made to access a socket 
in a way forbidden by its access permissions.

 

3000 포트가 이미 사용되고 있다는 의미인 것 같아서 3000 -> 3100으로 바꿔줬다.

원래는 3000:3000 이렇게 썼는데 이것의 의미는 호스트 포트 3000을 컨테이너의 포트 3000으로 매핑한다는 뜻이다.

3100으로 바꿀때는 호스트의 3000번 포트를 3100번으로 바꿨다. 이렇게 하면 접속은 3100번으로 해야하지만 컨테이너에서는 3000번으로 통하고 있으므로 코드를 수정하지 않아도 된다.

* 접속할때는 3100번으로 접속하라.

  frontend:
    build:
      context: ./client
      dockerfile: Dockerfile
    restart: always
    ports:
      - 3100:3000
    depends_on:
      - backend

 

 

+ Recent posts