2016-08-24 9 views
0

今、私はPythonで単純なWebサーバーを持っています。これはLinuxベースのドッカーコンテナに入れられています。そのコンテナは専用のオープンスタッククラウドに配備され、ボリュームはコンテナに取り付けられてマウントされます。クラウドにデプロイされたドッカーコンテナでSQLを使用するにはどうすればよいですか?

Webサーバーは、ボリューム上のjsonファイルにデータを保存しています。しかし、私はその保存メカニズムをSQLデータベース(postgrest?sqlite?)で置き換えたいと思います。

私はデータベース管理の経験がありません(私はクエリを知っています)。そのコンテナにSQLをインストールするにはどうすればいいですか?それはボリューム上にある必要がありますか、またはコンテナ内のソフトウェアにインストールし、実際のデータに対してのみボリュームを使用する方法がありますか?

+1

SQLをインストールしないで、特定のデータベースをインストールします。しかし、Dockerisedの世界では、別のデータベースコンテナを起動するだけです。 –

答えて

0

免責事項:私はOpenstackについて何も知らないし、これは専用のLinuxサーバに似ていると考えて答えます。その仮定が間違っていなければならない場合、おそらくもっと良い答えがそこにあるでしょう。

好ましくは、よく知られているパブリックイメージに基づいて、DB用に別のコンテナを使用することをお勧めします。個人的に私はmysql fork mariadbの経験があります。

使用a docker-compose.yml fileそうのように、エントリを追加することにより、一緒にこれらのコンテナをリンクする:あなたの場所でこれを持っている(とDB用などのパスワードを変更)

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は、あなたの画像だけでなく、それが依存している他のすべてのもの(dbコンテナのような)を実行します。

関連する問題