无法启动服务器:在unix socket上绑定:不允许操作

时间:2018-02-11 13:20:32

标签: mysql linux docker docker-for-windows

环境: docker:Docker版本17.12.0-ce,build c97c6d6 窗户:窗户10 docker-images:mysql / mysql-server latest

我使用此命令成功创建一个容器,但几秒后自动停止:

MuteBtn.setOnClickListener(new View.OnClickListener() { 
@Override public void onClick(View view) { 
float seconds = Float.parseFloat(inputSeconds.getText().toString());
long milsec = (long) (seconds * 1000); ; } });

docker logs server:

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD="root" -e MYSQL_USER="sa" -e MYSQL_PASSWORD="123456" -v "/C/mysql/Config/my.cnf":/etc/my.cnf -v "/C/mysql/Data":/var/lib/mysql --name server mysql/mysql-server

我设置了dir" C:/ mysql /"每个人的许可,我该怎么办?还是忘了什么? permission

docker ps -a

感谢Ahab的帮助,当我添加标签":rw" 结果仍然相同 无法启动服务器:在unix socket上绑定:不允许操作 result1 result2

2 个答案:

答案 0 :(得分:0)

根据https://dev.mysql.com/doc/refman/5.7/en/deploy-mysql-nonlinux-docker.html

报价:

如果要绑定安装在容器的MySQL数据目录上(有关详细信息,请参见持久数据和配置更改),则必须使用--socket选项将服务器套接字文件的位置设置为MySQL数据之外的某个位置目录;否则,服务器将无法启动。这是因为Docker for Windows处理文件挂载的方式不允许将主机文件绑定挂载在套接字文件上。

答案 1 :(得分:0)

在Win 10上,我不得不使用docker卷来解决此问题,撰写文件如下所示

version: '3'
services:
  webapp:
    build:
      context: .
      dockerfile: Dockerfile-webapp
    image: webapp
    privileged: true
    volumes:
      - ./app:/var/www/html/app
      - ./httpd.conf:/etc/httpd/conf/httpd.conf
    ports: 
      - "8080:80"
    environment:
      - dockerenv=true
    links: 
      - dbserver:dbserver
  dbserver:
    image: percona:5.6.41
    restart: always
    environment:
     MYSQL_ROOT_PASSWORD: 
    ports:
     - "3306:3306"
    volumes:
      - dockerdbdata:/var/lib/mysql
      - ./query/init.sql:/docker-entrypoint-initdb.d/init.sql
    privileged: true
volumes:
  dockerdbdata: