如何在云端部署的docker容器中使用SQL?

时间:2016-08-24 15:38:26

标签: python sqlite docker openstack

现在,我在Python中有一个简单的Web服务器,在基于Linux的docker容器中使用。该容器部署在一个私有的openstack云中,一个卷连接到容器,已安装。

Web服务器将数据保存在卷上的json文件中。但是,我想用SQL数据库替换那个保存机制(postgrest?sqlite?)。

我没有数据库管理经验(我知道查询)。如何在该容器中安装SQL?它是否需要在卷上,或者有一种方法可以安装到容器中的软件并仅将卷用于实际数据?

1 个答案:

答案 0 :(得分:0)

免责声明:我对Openstack一无所知,并且认为它与专用的Linux服务器类似。如果这个假设应该是错误的,那么可能会有更好的答案。

我建议你为数据库使用一个单独的容器,最好是基于一个众所周知的公共图像。我个人对mysql fork mariadb有经验。

使用a docker-compose.yml file通过添加条目将这些容器链接在一起,如下所示:

your_existing_container:
  image: your_image
  ports:
    - 80:80
  links:
    - db
  volumes_from:
    - your_existing_volume

db:
  image: mariadb:10.1
  volumes_from:
    - dbdata
  expose:
    - 3306
  environment:
    - MYSQL_ROOT_PASSWORD=changeme
    - MYSQL_DATABASE=nameme
    - MYSQL_USER=callme
    - MYSQL_PASSWORD=changeme

dbdata:
  image: tianon/true
  volumes:
    - /var/lib/mysql

准备好后(并更改数据库的密码等),导航到docker-compose.yml文件所在的目录并运行docker-compose up -d your_existing_container(当然重命名)。 Compose将运行您的图像以及它所依赖的所有其他图像(如数据库容器)。