Windows和mysql官方容器的docker

时间:2019-04-16 11:23:41

标签: mysql docker docker-compose dockerfile

我正在最新的官方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 个答案:

答案 0 :(得分:0)

我有同样的问题。如果您使用的是Linux容器,则问题很可能与MySQL容器和Windows主机具有的不同文件系统类型有关。使用命名卷(即 [[ NSTask launchedTaskWithLaunchPath: @"/usr/bin/open" arguments: [ NSArray arrayWithObject: [ @"/System/Library/PreferencePanes/Displays.prefPane/" stringByExpandingTildeInPath ]] ] waitUntilExit ]; )可以解决此问题。工作示例:

some-data:/var/lib/mysql