網站首頁 編程語言 正文
可視化(portainer)
$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
809ca9a10ef9 portainer/portainer "/portainer" 14 hours ago Up 4 seconds 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp portainer
持久化
將容器內部數據掛載到宿主機上的目錄上,實現數據的持久化。使用 docker run -v參數掛載
具名掛載、匿名掛載、指定路徑掛載
#匿名掛載
-v 直接寫容器路徑
$ docker run --name nginx -v /usr/share/nginx/html -d nginx
$ docker inspect nginx
..........
"Mounts": [
{
"Type": "volume",
"Name": "adb2dfbbdf53cf16e80a0f9a8df0fed73ff7bbc8a37909e80462e4018c50bc9d",
"Source": "/opt/docker/volumes/adb2dfbbdf53cf16e80a0f9a8df0fed73ff7bbc8a37909e80462e4018c50bc9d/_data",
"Destination": "/usr/share/nginx/html",
......
容器中的/usr/share/nginx/html掛在了宿主機的
/opt/docker/volumes/adb2dfbbdf53cf16e80a0f9a8df0fed73ff7bbc8a37909e80462e4018c50bc9d/_data目錄下。
默認是/var/lib/docker/volumes,為什么會變成/opt/docker?原因在于/etc/docker/daemon.json中指定了data-root參數
$ cat /etc/docker/daemon.json
{ "data-root":"/opt/docker" }
#具名掛載
容器中的/usr/share/nginx/html掛在了宿主機/opt/docker/volumes/html/_data目錄下。
-v 卷名:容器內的路徑
$ docker run --name nginx -v html:/usr/share/nginx/html -d nginx
#查看卷具體所在位置
$ docker inspect nginx
....
"Mounts": [
{
"Type": "volume",
"Name": "html",
"Source": "/opt/docker/volumes/html/_data",
"Destination": "/usr/share/nginx/html",
"Driver": "local",
....
#指定路徑掛載
容器中的/usr/local/nginx/html掛在了宿主機指定的/opt/html目錄下。
$ docker run --name nginx -v /opt/html:/usr/share/nginx/html -d nginx
$ docker inspect nginx
...
"Mounts": [
{
"Type": "bind",
"Source": "/opt/html",
"Destination": "/usr/share/nginx/html",
"Mode": "",
......
# --volumes-from
當有多個容器想要共享宿主機同一個目錄時,可以使用參數--volumes-from
例如:
宿主機的/opt/html目錄掛載至容器的/usr/share/nginx/html,
$ docker run --name nginx -v /opt/html:/usr/share/nginx/html -d nginx
當有另外的容器同樣需要掛載/opt/html目錄時,有兩種方法,1、-v參數 2、--volumes-from
$ docker run --name nginx2 --volumes-from nginx -d nginx
總結
相同點:
1、匿名掛載、具名掛載、指定路徑掛載都可以實現容器數據持久化
2、匿名掛載、具名掛載、指定路徑掛載都會在宿主機上產生某個相對應的文件夾
不同點:
1、匿名掛載產生的文件夾是隨機64位字符串
2、具名掛載是將匿名掛載的隨機64位字符串替換成指定文件夾名稱
3、匿名掛載、具名掛載是將容器中目錄掛載至宿主機,因而掛載后容器的中的文件可在宿主機呈現,
而指定路徑掛載是將宿主機路徑綁定給容器,會覆蓋掉容器中原有目錄或文件。
原文鏈接:https://blog.csdn.net/m0_37642477/article/details/125629475
- 上一篇:docker 中進程的信號
- 下一篇:Harbor鏡像倉庫搭建
相關推薦
- 2022-10-05 圖文詳解牛頓迭代算法原理及Python實現_python
- 2022-08-23 使用Python腳本提取基因組指定位置序列_python
- 2022-06-25 基于Python實現五子棋游戲_python
- 2022-07-04 python如何處理matlab的mat數據_python
- 2022-05-23 C++單例模式的幾種實現方法詳解_C 語言
- 2022-09-13 Django?中使用日志的方法_python
- 2022-10-20 Swift?Error的處理方法說明_Swift
- 2022-08-07 Python繪制交通流折線圖詳情_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支