Docker 端口问题:docker ps 通知我的 MySQL 容器在 3360 上可用,但 netstat 告诉我它不可用

问题描述 投票:0回答:1

我正在遵循一个教程:https://www.youtube.com/watch?v=mSnte-Ovm10,直到安装 MySQL docker 容器为止,一切都工作正常。然而,关于端口 3360 上这个 docker 容器的可用性,我收到了矛盾的反馈。注意,我已经停止了通常在这个端口上运行的本地 MySQL 服务器。

docker ps
给出以下输出:


CONTAINER ID   IMAGE               COMMAND                  CREATED         STATUS         PORTS                                   NAMES
58869367610a   nginx:1.19-alpine   "/docker-entrypoint.…"   5 minutes ago   Up 5 minutes   0.0.0.0:8001->80/tcp, :::8001->80/tcp   gio-nginx
2bcf8d265bf2   docker_app          "docker-php-entrypoi…"   5 minutes ago   Up 5 minutes   9000/tcp                                gio-app
3ea3b89372dd   mysql:8.0           "docker-entrypoint.s…"   5 minutes ago   Up 5 minutes   3306/tcp, 33060/tcp                     gio-db

运行

sudo netstat -tunpl
给出:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN      55403/docker-proxy  
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      841/systemd-resolve 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      15017/cupsd         
tcp6       0      0 :::8001                 :::*                    LISTEN      55412/docker-proxy  
tcp6       0      0 ::1:631                 :::*                    LISTEN      15017/cupsd         
tcp6       0      0 :::8443                 :::*                    LISTEN      1072/apache2        
tcp6       0      0 :::80                   :::*                    LISTEN      1072/apache2        
udp        0      0 127.0.0.53:53           0.0.0.0:*                           841/systemd-resolve 
udp        0      0 0.0.0.0:631             0.0.0.0:*                           15018/cups-browsed  
udp        0      0 224.0.0.251:5353        0.0.0.0:*                           5532/chrome         
udp        0      0 224.0.0.251:5353        0.0.0.0:*                           5532/chrome         
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           882/avahi-daemon: r 
udp        0      0 0.0.0.0:50766           0.0.0.0:*                           882/avahi-daemon: r 
udp6       0      0 :::41086                :::*                                882/avahi-daemon: r 
udp6       0      0 fe80::a590:5613:df0:546 :::*                                890/NetworkManager  
udp6       0      0 :::5353                 :::*                                882/avahi-daemon: r 

没有提到端口3360

这是我的 YML 文件:

version: "3.3"

services:
  app:
    build:
      context: ./
      dockerfile: dockerfile
    container_name: gio-app
    restart: always
    working_dir: /var/www
    volumes:
      - ../src:/var/www

  nginx:
    image: nginx:1.19-alpine
    container_name: gio-nginx
    restart: always
    ports:
      - "8001:80"
    volumes:
      - ../src:/var/www
      - ./nginx:/etc/nginx/conf.d
  db:
    container_name: gio-db
    image: mysql:8.0
    volumes:
     - ./storage/mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      ports:
       -3306:3306

当我尝试与 MySQL Workbench 建立连接时,应用程序崩溃了。我尝试连接端口 3360 和 33060。没有乐趣。

我跑步

docker system prune
是为了一个新的开始。

我非常感谢所提供的任何帮助。预先感谢。

mysql docker docker-compose port
1个回答
0
投票

您的端口未映射,因为您的

ports:
缩进已关闭。

而不是

  db:
    container_name: gio-db
    image: mysql:8.0
    volumes:
     - ./storage/mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      ports:
       -3306:3306

应该是

  db:
    container_name: gio-db
    image: mysql:8.0
    volumes:
     - ./storage/mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - 3306:3306
© www.soinside.com 2019 - 2024. All rights reserved.