IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker容器数据卷详解(共享数据) -> 正文阅读

[系统运维]Docker容器数据卷详解(共享数据)

一、数据卷(Data Volumes)

宿主机和容器是两个不同的名称空间,如果想进行连接 需要用ssh,exec和attch也类似于ssh这种方式登录,在企业中ssh这种登陆方式会比较危险,安全漏洞很大,尽量减少ssh这种,杜绝了频繁使用exec,因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改,当容器里的文件频繁需要修改时不需要登陆进去,直接使用数据卷方式在宿主机指定的目录下进行修改即可。方便又安全

原理:将容器内部的配置文件目录,挂载到宿主机指定目录下

它可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响到镜像
  • 数据卷默认 会一直存在,即使容器被删除

1.作用

①修改配置文件例如,nginx. conf /usr/local/nginx/ conf/nginx.conf —> /container_ nginx/ conf/nginx. conf
②容器内部产生的日志,如何收集将容器内部存方日志文件的目录挂载到宿主机指定目录下/container_ nginx/ log/access_ 1og/access_ log
③传入变量挂载到宿主机在宿主机上添加变量内容,将变量放入共享目录,在容器中/etc/profile 直接加载就可以
export xxdir=/data/data1/xx.

2.创建数据卷

宿主机目录 /var/www 挂载容器中的 /data1
docker run -it -v /var/www/html:/data1 --name test1 centos:7 /bin/bash

mark

mark

验证:在容器目录下创建新文件,去宿主机上验证是否同步

mark

mark

验证:在宿主机上修改此文件,去容器目录下验证是否同步修改

mark

mark

  • exit 和 stop 两种退出方式不同,返回状态也不同

mark

二、数据卷容器

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器

数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载

原理:让两个容器实现数据共享

1.新建数据卷容器

docker run -it --name xjj -v /data1 -v /data2 centos:7 /bin/bash 
     注:-v 后面接的共享数据真实存放路径
  • 用容器db1测试数据卷容器是否可用
[root@xjj html]# docker run -it --name db1 --volumes-from xjj centos:7 /bin/bash
[root@3fea8199ee77 /]# ls
anaconda-post.log  data2  home   media  proc  sbin  tmp
bin                dev    lib    mnt    root  srv   usr
data1              etc    lib64  opt    run   sys   var
[root@3fea8199ee77 /]# touch data1/1.txt
[root@3fea8199ee77 /]# touch data2/2.txt

验证:
[root@xjj docker]# docker run -it --name xjj -v /data1 -v /data2 centos:7 /bin/bash 
[root@441165bdb9ed /]# ls /data1
1.txt
[root@441165bdb9ed /]# ls /data2
2.txt

随便创建一个1.txt 2.txt文件就可以查看效果了

效果:上面例子中 db1 通过 xjj 来共享了数据

三、把宿主机的文件传入到容器内部

#linux  复制:
cp 原文件路径 目标文件路径
#容器:
docker cp /opt/abc 容器ID:/opt/abc

四、在宿主机环境执行容器内命令

docker exec -it 容器ID /bin/bash -c 'nginx'
docker exec 容器ID/容器name  执行的命令

五、暴露端口

-p  自定义端口(宿主机端口: 容器内端口)
-P  随机端口 (-P 49153起始   49153到65535 )
docker run -itd -p 333:80 nginx /bin/bash (docker 0)
docker run- itd -P nginx /bin/bash

六、自定义网络固定IP

docker network create --subnet=172.18.0.0/16 mynetwork
docker run - itd --name test2 --het mynetwork --ip 172.18.0. 100 centos: latest /bin/bash
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 10:18:21  更:2021-11-27 10:19:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:17:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码