您好,登錄后才能下訂單哦!
本篇文章為大家展示了docker中數據持久化是什么樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
先看一個Nginx dockerfile
FROM nginx WORKDIR /usr/nginx/html COPY index.html index.html
我們想吧容器里的工作目錄掛載到我們 服務器 的數據卷上,以免容器刪除后數據丟失。
首先我們build dockerfile成一個image 取名為 saniii/my-nginx-mount
docker build -t saniii/my-nginx-mount .
運行容器
docker run -d -p 3331:80 -v $(pwd):/usr/nginx/html --name nginx1 saniii/my-nginx-mount -d 后臺運行 -p 綁定主機端口到容器端口 3331:表示服務器的端口 :80 表示容器里的端口 -v 數據綁定 $(pwd) 代表當前路徑 :/usr/nginx/html 為要綁定的容器里的路徑 --name 容器命名為 nginx 1 saniii/my-nginx-mount 運行的容器名
看下數據有沒有綁定成功
docker exec -it nginx1 /bin/bash 交互式運行容器 我們在容器里創建一個文件,退出
我們可以在dockerfile中定義我們數據的在容器中的持久化路徑
https://github.com/docker-library/mysql/blob/9d1f62552b5dcf25d3102f14eb82b579ce9f4a26/5.7/Dockerfile
上面是 mysql 官方dockerfile中的最佳實踐 mysql在容器中運行的時候數據持久化在以下的路徑
命令 sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7 -v 數據綁定 將我們數據volume命名為mysql /var/lib/mysql容器中數據卷的路徑 -e MYSQL_ALLOW_EMPTY_PASSWORD=true 設置mysql無密碼
正在運行的Volume docker volume ls
查看Volume在主機上的持久化地址 docker volume inspect mysql
交互式運行容器 docker exec -it mysql1 /bin/bash
登錄mysql 查看數據庫 mysql -uroot -hlocalhost -p
我們創建一個數據庫
退出容器并刪除。
docker rm -f mysql1 -f 強制刪除正在運行的容器
我們再啟動一個mysql容器,使用之前的Volume mysql
sudo docker run -d -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7
我們發現數據還是存在的。
這樣我們就可以做到數據的持久化了。
上述內容就是docker中數據持久化是什么樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。