为什么 mac+docker 给 mysql 设置的文件卷不起作用?

图片.png

version: "3"
services:
  mysql8:
    platform: linux/amd64 # 不加这行会报:ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
    container_name: mysql8
    image: mysql:8.0 # 镜像会从 docker hub 中拉取。地址: https://hub.docker.com/_/mysql?
    ports:
      - "3306:3306" # 冒号左边的宿主机的端口,右边的是容器的端口
    restart: always # 如果容器停止,请始终重新启动容器。  如果是手动停止的,只有在 Docker daemon 重启或者容器本身手动重启时才会重启。https://docs.docker.com/config/containers/start-containers-automatically/
    volumes:
      - /usr/local/mysql/data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456 # root 账号的密码,记得把 Django settings.py 里面 mysql 配置项的密码和这个对应起来

启动容器

─➤  docker-compose -f depend_tools/docker-compose-tools.yaml up -d
[+] Running 12/12
 ✔ mysql8 11 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                                                                                                                                                                        41.2s 
   ✔ 46ef68baacb7 Pull complete                                                                                                                                                                                                                                                                                 12.3s 
   ✔ 94c1114b2e9c Pull complete                                                                                                                                                                                                                                                                                 12.3s 
   ✔ ff05e3f38802 Pull complete                                                                                                                                                                                                                                                                                 12.3s 
   ✔ 41cc3fcd9912 Pull complete                                                                                                                                                                                                                                                                                 12.4s 
   ✔ 07bbc8bdf52a Pull complete                                                                                                                                                                                                                                                                                 12.4s 
   ✔ 6d88f83726a9 Pull complete                                                                                                                                                                                                                                                                                 12.4s 
   ✔ cf5c7d5d33f7 Pull complete                                                                                                                                                                                                                                                                                 26.7s 
   ✔ 9db3175a2a66 Pull complete                                                                                                                                                                                                                                                                                 26.7s 
   ✔ feaedeb27fa9 Pull complete                                                                                                                                                                                                                                                                                 32.9s 
   ✔ cf91e7784414 Pull complete                                                                                                                                                                                                                                                                                 32.9s 
   ✔ b1770db1c329 Pull complete                                                                                                                                                                                                                                                                                 33.0s 
[+] Building 0.0s (0/0)                                                                                                                                                                                                                                                                                               
[+] Running 2/2
 ✔ Network depend_tools_default  Created                                                                                                                                                                                                                                                                         0.1s 
 ✔ Container mysql8              Started    

但是宿主机还是空空的

╭─ponponon@MBP13ARM ~/Desktop/code/work  
╰─➤  ll /usr/local/mysql/data                                                                                                                                              1 ↵
"/usr/local/mysql/data": No such file or directory (os error 2)
╭─ponponon@MBP13ARM ~/Desktop/code/work  
╰─➤  ll /usr/local/mysql/                                                                                                                                                  2 ↵
"/usr/local/mysql/": No such file or directory (os error 2)

但是登录到容器里面,发现是有东西的

─➤  docker exec -it mysql8 bash                                   
bash-4.4# cd /var/lib/mysql
bash-4.4# ls -alh
total 98M
-rw-r----- 1 mysql mysql 192K Jun 20 01:21 '#ib_16384_0.dblwr'
-rw-r----- 1 mysql mysql 8.2M Jun 20 01:19 '#ib_16384_1.dblwr'
drwxr-x--- 2 mysql mysql  680 Jun 20 01:19 '#innodb_redo'
drwxr-x--- 2 mysql mysql  240 Jun 20 01:19 '#innodb_temp'
drwxr-xr-x 7 mysql root   560 Jun 20 01:19  .
drwxr-xr-x 1 root  root  4.0K Jun 16 00:38  ..
-rw-r----- 1 mysql mysql   56 Jun 20 01:19  auto.cnf
-rw-r----- 1 mysql mysql 2.9M Jun 20 01:19  binlog.000001
-rw-r----- 1 mysql mysql  157 Jun 20 01:19  binlog.000002
-rw-r----- 1 mysql mysql   32 Jun 20 01:19  binlog.index
-rw------- 1 mysql mysql 1.7K Jun 20 01:19  ca-key.pem
-rw-r--r-- 1 mysql mysql 1.1K Jun 20 01:19  ca.pem
-rw-r--r-- 1 mysql mysql 1.1K Jun 20 01:19  client-cert.pem
-rw------- 1 mysql mysql 1.7K Jun 20 01:19  client-key.pem
-rw-r----- 1 mysql mysql 5.6K Jun 20 01:19  ib_buffer_pool
-rw-r----- 1 mysql mysql  12M Jun 20 01:19  ibdata1
-rw-r----- 1 mysql mysql  12M Jun 20 01:19  ibtmp1
drwxr-x--- 2 mysql mysql  160 Jun 20 01:19  mysql
-rw-r----- 1 mysql mysql  30M Jun 20 01:19  mysql.ibd
lrwxrwxrwx 1 mysql mysql   27 Jun 20 01:19  mysql.sock -> /var/run/mysqld/mysqld.sock
drwxr-x--- 2 mysql mysql 2.2K Jun 20 01:19  performance_schema
-rw------- 1 mysql mysql 1.7K Jun 20 01:19  private_key.pem
-rw-r--r-- 1 mysql mysql  452 Jun 20 01:19  public_key.pem
-rw-r--r-- 1 mysql mysql 1.1K Jun 20 01:19  server-cert.pem
-rw------- 1 mysql mysql 1.7K Jun 20 01:19  server-key.pem
drwxr-x--- 2 mysql mysql   60 Jun 20 01:19  sys
-rw-r----- 1 mysql mysql  16M Jun 20 01:21  undo_001
-rw-r----- 1 mysql mysql  16M Jun 20 01:21  undo_002

为什么没有映射过去?文件读写权限的问题?

阅读 1.8k
1 个回答

/usr/local 权限不行吧,你换个目录

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题