在Docker中创build卷并在容器中使用它

我有一个应用程序容器myapp和一个数据库容器sqldb。
我有一个SQL文件,我想将我的数据库导入到我的应用程序。 但是当容器停止时它会刷新数据。

所以为此我想使用音量,以便我的数据库保持更新。
我已经看到了如何创build音量的文档,但我很困惑。

请告诉我如何使用我更新的数据库使用量?
以及如何创build卷并将其链接到我的应用程序容器?

在这个博客中有一个使用mysql的具体例子:

首先创build一个数据卷容器 (一个永不运行,但包含数据并由其他容器装载的容器)

docker create -v /var/lib/mysql --name my-database mysql /bin/true 

然后运行数据库本身,使用--volumes-from选项安装第一个数据卷容器:

  docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 --volumes-from my-database -d mysql` 

我没有,也不想在我的原始笔记本电脑上安装MySQL客户端(视觉或其他)。
那么我们如何将模式和数据放到我们在Docker上运行的MySQL容器中呢? 答案是使用链接到我们的“服务器实例”的另一个MySQL Docker容器来运行我们需要的任何命令

 docker run -it --link mysql:mysql --rm mysql sh -c \ 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" \ -P"$MYSQL_PORT_3306_TCP_PORT" -uroot \ -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" \ -e "create schema my-schema"'` 

该命令运行另一个 mysql容器,除了这个只用于执行一个mysql命令,链接到运行实际数据库的mysql容器。

检查数据库是否被创build:

 $ docker run -it --link mysql:mysql --rm mysql sh -c \ 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" \ -P"$MYSQL_PORT_3306_TCP_PORT" -uroot \ -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" \ -e "show databases"' Warning: Using a password on the command line interface can be insecure. +--------------------+ | Database | +--------------------+ | information_schema | | my-schema | | mysql | | performance_schema | +--------------------+