我正在尝试使用docker上的mysql映像,附加一个卷,此外,我想添加一个sql脚本,以便创建一个表(如果还没有)。因此,如果容器在另一台机器中使用,表将始终存在。
我的命令:
docker run-d-p 3306:3306--name my mysql--network sma-v/scripts:/docker-entrypoint-initdb.d/-v/myvolume/:/var/lib/mysql-e mysql\u root\u password=password-e mysql\u database=mydb mysql
我的情况是:我可以在运行期间使用-v选项(/myvolume/:/var/lib/mysql)附加卷,实际上我也可以在init目录(/docker-entrypoint-initdb.d/)中插入脚本,但是如果我做这两件事,只有附加卷才能工作。
我猜这就像脚本被执行一样(因为它被放在目录中),但是mysql被附加的卷覆盖了,所以我看到的只有myvolume中的内容。
有什么办法可以让它起作用吗?
1条答案
按热度按时间jm81lzqq1#
我决定把它用在一个 Docker 的群里
docker stack deploy -c docker-compose.yml swarm_name
.在docker compose的服务定义中,我添加了命令行,以强制它执行init脚本。