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
为什么没有映射过去?文件读写权限的问题?
/usr/local 权限不行吧,你换个目录