2017-02-11 3 views
1

私はプロジェクトでDockerとDocker Composeを使用します。私は3つの容器をhava:PHP、MySQLとNginx。 今のところ、MySQLバイナリデータはMySQLコンテナ(/var/lib/mysql/...)の中に保存されています。Dockerコンテナ内にMySQLデータを保存する

私はこれがベストプラクティスではないと思うし、コンテナが最初から再構築されていると危険なこともあります。

データを安全に保つ最も良い方法は何ですか?これは、スタンドアロンサーバーである場合

感謝:)

答えて

1

、あなたのデータの安全を維持するための最良の方法は、docker data volumesを使用することです。 2つのオプションは以下のとおりです。

データボリューム:データボリュームユニオンファイルシステムをバイパスし、1つ以上の容器内に特別に指定されたディレクトリです。

データ量は以下のようにファイルシステム上にドッキングウィンドウによって自動的に作成することができます。

docker run -d --name nginx -v /usr/share/nginx/html nginx 

docker inspect nginx 
... 
     "Mounts": [ 
      { 
       "Name": "4fead165b4c3ba1a900ca1ab0e095f43ee32d6a4c61eba37f4bcb28c58ce7036", 
       "Source": "/var/lib/docker/volumes/4fead165b4c3ba1a900ca1ab0e095f43ee32d6a4c61eba37f4bcb28c58ce7036/_data", 
       "Destination": "/usr/share/nginx/html", 
       "Driver": "local", 
       "Mode": "", 
       "RW": true, 
       "Propagation": "" 
      } 
     ], 
... 

それとも、のようなドッキングウィンドウコンテナにあなたが選んだのサーバー上filsystemパスをマウントすることができます。

docker run -d --name nginx2 -v /tmp/test:/usr/share/nginx/html nginx 
詳細については、

は、以下を参照してください。 https://docs.docker.com/engine/tutorials/dockervolumes/

2

soluti

version: "2.0" 


services: 
    mysql: 
     image: mysql:5.7 
     volumes: 
      - "mysql_data:/var/lib/mysql" # data container 
volumes: 
    mysql_data: 
     driver: local 

そして私はドッカー

docker volume ls 
+0

ドッカ - コンと私のボリュームを見ることができるにもあるこの、良い提案を達成するための素晴らしい方法(よりエレガント):上はドッカー作曲で、非常に簡単です。 upvoted – gbolo

関連する問題