在 Ubuntu 上使用 Docker 存数据,核心思想是:不要只把数据放在容器内部,因为容器一旦删除,里面的数据就没了。常见做法有以下几种:
Docker 自己管理的一块存储空间,安全、易备份。
docker volume create mydata
docker run -d \
--name mysql \
-v mydata:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
mydata:volume 名/var/lib/mysql:容器内数据目录docker volume ls
docker volume inspect mydata
docker run --rm \
-v mydata:/data \
-v $(pwd):/backup \
ubuntu tar czf /backup/mydata.tar.gz -C /data .
直接把 Ubuntu 上的文件夹挂进容器。
docker run -d \
--name nginx \
-v /home/ubuntu/html:/usr/share/nginx/html \
nginx
/home/ubuntu/html:Ubuntu 本机目录⚠️ 注意权限问题(尤其在 Ubuntu 上):
sudo chmod -R 777 /home/ubuntu/html
(生产环境不建议 777)
docker run ubuntu touch /tmp/test.txt
version: "3"
services:
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
如果你能说一下:
我可以直接给你一套最合适的 Ubuntu + Docker 存数据方案。