5
respostas

docker-compose up -d

C:\Users\andre\IdeaProjects\devops-master>docker-compose up -d
Starting devops-master_db_1 ... error

ERROR: for devops-master_db_1  Cannot start service db: Ports are not available: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is
 normally permitted.

ERROR: for db  Cannot start service db: Ports are not available: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permit
ted.
ERROR: Encountered errors while bringing up the project.
5 respostas

Olá André, Como está configurado o arquivo docker-compose.yml ?

Obrigado pelo contato. Este arquivo esta no padrao do curso Marcelo, mas pensando aqui em atualizacoes, pode ser algo mesmo. Esta desta forma abaixo.

version: '3'


services:
  db:
    image: mysql:5.7
    ports:
      - '3306:3306'
    environment:
      MYSQL_DATABASE: 'todo_dev'
      MYSQL_USER: 'devops_dev'
      MYSQL_PASSWORD: 'mestre'
      MYSQL_ROOT_PASSWORD: 'senha'
  web:
    image: aluracursos/django_todolist_image_build
    volumes:
      - ./env:/usr/src/app/to_do/.env
    ports:
      - "8000:8000"
    depends_on:
      - db

Parece que a porta 3306 já está em uso no seu computador.

1 - Verifica se não tem nenhum outro container rodando e utilizando a porta 3306 (docke ps Ou docker port nome_do_container) 2 - Verifica se não tem nenhum mysql/mariadb/sqlserver/oracle instalado na tua máquina que esteja rodando (normalmente eles trabalham na porta 3306)

Se encontrar qualquer um dos dois, mata o processo e tenta subir de novo os containers.

Pior que tem o MySQL sim... certeza que é conflito de porta mesmo, mas não queria trocar a do MySQL e sim a do docker... acha que é possível?

Você pode mudar a primeira parte que refere ao Host na propriedade ports. Exemplo:

db:
    image: mysql:5.7
    ports:
      - '3307:3306' 

Dentro da rede default do docker seus containers irão se comunicar com o DB na 3306. Mas se você quiser conectar no DB a partir da sua máquina, terá que utilizar a porta 3307 (ou qualquer uma que você definir).

Lembra: lado esquerdo (host), lado direto (rede do docker)

Documentação: https://docs.docker.com/compose/networking/