在docker中创建卷并在容器

时间:2015-12-11 13:03:08

标签: docker dockerhub

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

因此,我想使用卷,以便我的数据库保持更新 我已经看过如何创建音量的文档,但我很困惑。

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

1 个答案:

答案 0 :(得分:1)

你有一个使用mysql in this blog post的具体例子:

首先,它创建一个data volume container(一个从不运行但包含数据并由其他容器安装的容器)

int timeClicked = - 10000;

void draw() {
  if (mousePressed) {
    timeClicked = millis();
  }

  background(0);

  if (millis() < timeClicked + 1000) {
    ellipse(50, 50, 50, 50);
  }
}

然后它运行数据库本身,使用 docker create -v /var/lib/mysql --name my-database mysql /bin/true 选项挂载第一个数据卷容器:

--volumes-from
  

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

的另一个MySQL Docker容器运行我们需要的任何命令
 docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 --volumes-from my-database -d mysql`

该命令运行另一个 mysql容器,除了此命令仅用于执行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