本論文では、どのようにデータの永続性について話をするには、保存されました!
データ永続化ボリューム
サービス環境では、より頻繁に私たちが望むようなサービス、MySQLのデータなどをログに記録するように、コンテナの下、いくつかのデータを保存することです。
あなたが他の設定を行わない場合は、コンテナを除去した後、データも明らかに私たちのユーザーのニーズを満たしていない、削除されました。
ユニットのボリュームを確認します。
ドッキングウィンドウのボリュームLS
デフォルトでは、それはあなたがいない場合、私は今、すべてのコンテナを削除したので、彼らは、Redisの理由の前に轢かれるかもしれない、空でなければなりません。
ここでパラメータは、以下のリンクに関連し得る、請求MySQLの容器、例。
https://github.com/docker-library/docs/tree/master/mysql
MySQLのコンテナを実行します。
ドッキングウィンドウコンテナの実行-d --nameのmysql-デモ-e MYSQL_ALLOW_EMPTY_PASSWORD = yesのmysqlの:5.7
設定MySQLは、パスワードなしでログイン!
ドッキングウィンドウコンテナの実行-d --nameのmysql-デモ-e MYSQL_ALLOW_EMPTY_PASSWORD = yesのmysqlの:5.7
容器の中にデータベースを作成します。
ドッキングウィンドウコンテナ幹部 -itのmysql-デモ/ binに/ shを
結果が示されています。
この時点での状況をボリュームを確認します。
ドッキングウィンドウのボリュームLS
結果が示されています。
コンテナのビューでは、詳細を見ることができるとき。
ドッキングウィンドウコンテナは、MySQL-デモを点検します
結果が示されています。
この時点で、削除コンテナを我々:
ドッキングウィンドウコンテナRM -fのmysql-デモ
結果が示されています。
コンテナを見つけることができますが、削除が、ボリュームが残りました。
この時点では、MySQLコンテナは結果でこのボリュームルックをマウントし、再実行します。
docker container run -d --name mysql-demo-1 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -v 426303e50c95cf029e4943728f4a5a6d1041620cf52916f52a02b8e008d1df42:/var/lib/mysql mysql:5.7
注意红色部分就是将 volume 挂载到容器的数据目录 /var/lib/mysql。
重新登录容器查看:
发现这个库又回来了!
当然如果你觉得这个名字很奇怪那么你在创建容器的时候就应该制定好:
docker container run -d --name mysql-demo-2 -v mysql-volume-demo:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql:5.7
查看 volume:
这样就完成了数据持久化保存下来的工作!
数据持久化 Mount
另外一种数据持久化的方法则是将容器的某个目录挂载到宿主机的某个目录,这样也能实现持久化。
这里以一个 nginx 的容器为例:
# 宿主机创建需要挂载的目录 mkdir /data/html -p # 创建容器 docker container run -d --name nginx-demo -v /data/html:/usr/share/nginx/html -p 8000:80 nginx
此时再在宿主机目录创建 html 文件:
cd /data/html/
vim index.html
内容如下:
<h1>Hello docker</h1>
使用浏览器访问:
这样就实现容器的某个目录挂载到了宿主机本地!此时就算你删除容器,只要下一个 nginx 容器挂载这个目录依然能够继续使用。