Zi 字媒體
2017-07-25T20:27:27+00:00
Use Docker Volume to Build Databases
Ubuntu: 18.04
Docker: 18.09
雖然 Docker Container 可以建立出完全獨立的環境,但是有些時候我們仍有共用資料的需求,例如資料庫。實際在應用上,不會因為關掉 Database 的 Container 以後就放任資料消失,這時候就可以使用 Docker Volumes 的功能,將本機的實際目錄掛載進 Container 中,達成共享資料的目的。
(圖片來源:Docker 官網)
Usage
Docker 提供了 docker volume 的指令來操作 volume。
; 建立 db-data volume
docker volume create --name my-data
; 查看 volume 清單
docker volume ls
; 查看 volume 狀態
docker volume inspect my-data
; 刪除 volume
docker volume rm my-data
Notice: 這裡建的 Volume 實體預設都會放在本機的 /var/lib/docker/volumes。
在 Volume 建立完成之後,就可以透過 docker run -v 指令將 Volume 掛進 Container。
; 將 my-data volume 掛載進 Container 的 /mydb/data 中
; 建立 test_file 檔案
docker run -v my-data:/mydb/data -it ubuntu:19.04 touch /mydb/data/test_file
; 建立第二個 Container,一樣將 my-data volume 掛載進 Container,一樣可以看到 test_file 的檔案
docker run -v my-data:/mydb/data -it ubuntu:19.04 ls -la /mydb/data
另外,也可以將本機指定的目錄掛載進去 Container。
DB 範例
; 建立 DB 的 Container,並且共享資料庫資料
; 將 ~/resource/docker/data 掛載進 /var/lib/mysql
docker run -d --name my-db \
-e MYSQL_ROOT_PASSWORD=password \
-v ~/resource/docker/data:/var/lib/mysql \
mysql:5.7
這樣一來,資料庫的資料都會存在本機的 ~/resource/docker/data 裡,因此就算 Container 關閉了,資料仍會存在。
Categories: Docker
Tags: Docker
分類
Android
AngularJS
API Blueprint
Chrome
Database
MySQL
DataStructure
Docker
Editor
Vim
Firefox
Git
GitLab
Google API
Hadoop
Language
Go
Java
JavaScript
jQuery
jQueryChart
Node.js
Vue
PHP
Laravel
ZendFramework
Python
Mac
Network
Cisco
DLink
Juniper
Oauth
Server
Apache
Share
Unix
FreeBSD
Linux
WebDesign
Bootstrap
CSS
HTML
Wordpress
Search
搜尋關鍵字:
寫了
5860316篇文章,獲得
23313次喜歡