2017-10-24 23 views
0

私は、さまざまな目的のために他のコンテナの束の中に永続的なデータを持つmysqlデータベースを含むウェブサイト用のドッカー作成ファイルを持っています。現時点ではコンファイルは、例えば、データの相対パスを指定します。Docker Compose相対パスとDockerボリューム

 
mysql: 
    image: mysql:5.7 
    container_name: sqldb 
    volumes: 
    - ./mysql_data/_data:/var/lib/mysql 

とフォルダ構造:

 
--mysql_data 
--static_content 
docker-compose.yml 

いずれかの時点で私は持続を含むサイト全体を(移動できることを意味していますコンテンツを)別のサーバーにコピーして、ドッカーを作成してください。

しかし、ドッカーボリュームについては、それが推奨される方法です(相対バインドマウントパスは "ドッカー実行"を使用してサポートされているようには見えませんが、作成で作業しているようです)ので、ボリュームを使用するこのアプローチを変更しますか?この相対バインディングアプローチに本質的に何か問題がありますか?ボリュームに切り替えると、コンテナを移動するときに手動でボリュームを移動する必要があります(たとえば、この方法はHow to port data-only volumes from one host to another?)。

+0

このapprochは、大文字と小文字の区別はありませんが、スウォームモードでは問題ありません。また、顧客パスをフォルダパスとして指定したボリュームにswarmモードで作業することもできます。今すぐ実行することについて心配する必要はありません。 –

答えて

0

これは、データの永続性を維持するためのdocker-swarmまたはcomposeのサンプルです。

version: '3' 
services: 
    sample: 
     image: sample 
     volumes: 
      - sample-date:/var/data 
volumes: 
    sample-date: 
    driver: local 
    driver_opts: 
     o: bind 
     type: none 
     device: /home/path/of/your/folder 

これは、すべてのサーバーで使用できます。これは、ボリュームデバイスのプロパティをそれぞれのディレクトリパスにフォルダ化して切り詰めるためです。

+0

こんにちはJinnaさん、ありがとうございますが、これはおそらく異なる環境の異なるフォルダ構造に移植性の問題はありませんか?私はとにかくボリュームをドッキングできることは知っていますが、相対パスバインディングは移植性の利点を持っていると思っていましたが(私はSwarmを考慮していませんでしたが、これは間違いなく良い点です...) – statts

関連する問題