提问者:小点点

docker for windows和mysql官方容器


我正在最新的官方MySQL docker容器中运行MySQL。主机是Windows10。

我正在使用“Docker-Compose up MySQL”启动以下服务:

version: '3.4'

services:
  mysql:
    image: mysql/mysql-server:latest
    container_name: sqlstore
    ports:
     - '3306:3306'
    expose:
     - '3306'
    env_file:
     - ./sqlconfig.env  
    volumes:
     - ./data:/var/lib/mysql

我遇到的问题是,当MySQL数据库文件驻留在主机的卷上时,MySQL无法运行,并且我不断收到以下错误消息:“是否您已经有另一个mysqld服务器在套接字上运行:”/var/lib/MySQL/MySQL.sock“”

值得注意的是,我确实确保了该端口没有被其他进程使用,MySQL的文件确实被写入主机上的./data目录。

但是,当MySQL文件不驻留在主机上而是驻留在docker本身内时,一切都能正常运行。


共1个答案

匿名用户

我也有同样的问题。如果您使用的是Linux容器,那么这个问题很可能与MySQL容器和Windows主机的文件系统类型不同有关。使用命名卷,即some-data:/var/lib/mysql可能会解决这个问题。工作示例:

version: '3.4'

services:
  mysql:
    image: mysql/mysql-server:latest
    container_name: sqlstore
    ports:
     - '3306:3306'
    expose:
     - '3306'
    env_file:
     - ./sqlconfig.env
    volumes:
     - datavol:/var/lib/mysql
volumes:
  datavol: