使用docker常见的问题

MySQL数据持久化

不要将数据储存在容器中,这也是 Docker 官方容器使用技巧中的一条。容器随时可以停止、或者删除。当容器被rm掉,容器里的数据将会丢失。为了避免数据丢失,用户可以使用数据卷挂载来存储数据,从而实现数据持久化。

示例代码:

1
2
3
4
5
6
7
8
9
10
CODE
docker run
--name my_mysql
-p 3307:3306
--restart unless-stopped
-v /e/Docker/mysql/logs:/var/log/mysql
-v /e/Docker/mysql/data:/var/lib/mysql
-v /e/Docker/mysql/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
mysql

空目录映射

初始数据目录映射, 必须确保是空目录

Win7选项

最后追加 –innodb-use-native-aio=0

非必须映射

日志文件目录与配置文件目录映射是可选的

–restart 选项说明

–restart=always表示容器退出时,docker会总是自动重启这个容器–restart=on-failure:3表示容器的退出状态码非0(非正常退出),自动重启容器,3是自动重启的次数。

超过3此则不重启–restart=no默认值,容器退出时,docker不自动重启容器–restart=unless-stopped表示容器退出时总是重启,但是不考虑docker守护进程运行时就已经停止的容器