Alur kerja Docker untuk menjalankan mysql dan phpmyadmin?

Saya baru menggunakan PHPMyAdmin di buruh pelabuhan, jadi saya bisa menjalankan container untuk MySQL dan PHPMyAdmin, tetapi setelah me-restart komputer saya, kedua container keluar.

Saya mencoba menjalankan docker-compose up -d lagi di direktori yang berisi dockerfile saya tetapi saya mendapatkan kesalahan ini:

Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use

Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use

Setelah ini, saya mencoba menjalankan docker-compose down yang menghapus kedua container, tetapi docker-compose up masih tidak dapat memulai ulang kedua container karena kesalahan ini.

Saya juga mencoba memanggil sudo kill -9 PID pada proses MySQL yang berjalan pada port 3306 tetapi setiap kali saya memanggilnya, tetap ada proses yang berjalan pada port tersebut.

Hal ketiga yang saya coba adalah docker-compose rm dan menghapus container ini sebelum menjalankan docker-compose up -d lagi, serta docker-compose restart, tetapi saya masih mengalami kesalahan ini.

Apakah ada cara yang tepat untuk memulai ulang wadah yang saya gunakan? Atau apakah saya salah memahami standar untuk menjalankan container buruh pelabuhan?

EDIT: Ini docker-compose.yaml saya:

version: "3.7"
services:
  mysql-server:
    image: mysql:8.0.19
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"
   
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:5.0.1
    restart: always
    environment:
      PMA_HOST: mysql-server
      PMA_USER: root
      PMA_PASSWORD: secret
    ports:
      - "8080:80"
volumes:
  mysql-data:

person Anonymous    schedule 13.08.2020    source sumber
comment
Bisakah Anda mencoba menjalankan docker-compose down di direktori proyek Anda dan mencobanya lagi?   -  person kabirbaidhya    schedule 13.08.2020
comment
Saya sudah mencobanya dan masih mendapatkan kesalahan ini.   -  person Anonymous    schedule 13.08.2020
comment
Kesalahan itu berarti ada sesuatu lain di host yang sudah menggunakan port ini. Itu bisa berupa pengaturan Docker lain atau instalasi MySQL yang berjalan langsung di host. Anda dapat mengubah nomor pertama dari ports: untuk memilih port host lain (biarkan nomor kedua tetap sama). Docker Error bind: alamat sudah digunakan memiliki beberapa tips proses debug lainnya.   -  person David Maze    schedule 13.08.2020