LoginSignup
3
2

More than 1 year has passed since last update.

【Docker-compose】コンテナ起動時にport is already allocatedエラーが発生したときの対処方法

Posted at

Laravelのwebアプリを作成するために、Docker-composeで環境構築してコンテナを起動したところMySQLの立ち上げでエラーが発生しました。
自分用の記録としてエラーの解消方法をメモします。

開発環境

docker-compose version'3'
MySQL '5.7'

やりたいこと

Docker-composeで環境構築してLaravelのアプリを作成したい。
ということでdocker-compose.ymlを以下の通り編集して、docker-compose upコマンドを叩いた。

version: '3'
services:
  web:
    image: nginx:1.15.6
    ports:
      - '8000:80'
    depends_on:
      - app
    volumes:
      - ./docker/web/default.conf:/etc/nginx/conf.d/default.conf
      - .:/var/www/html
  app:
    build: ./docker/php
    volumes:
      - .:/var/www/html
    depends_on:
      - mysql
  mysql:
    platform: linux/x86_64
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: memo_app
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: password
    ports:
      - "3306:3306"
    volumes:
      - mysql-data:/var/lib/mysql
volumes:
  mysql-data:

エラー内容

Bind for 0.0.0.0:3306 failed: port is already allocated

エラー文によると、3306番ポートが既に割り当てられているので、MySQLが起動できずエラーが発生してしまったらしい。
他のアプリでもDocker-composeとMySQLでアプリを作成していたので、そのコンテナが原因か。

対処方法

まずは次のコマンドで現在起動中のコンテナを確認。

ターミナル
docker ps

起動中のコンテナの中から、3306番ポートを使用しているコンテナを停止する。

ターミナル
docker stop (対象のCONTAINER ID)

これで無事にdocker-compose upできました!!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2