Docker-持久化存储

容器内部不保存数据,只提供服务。
重要的数据需要使用外部卷存储。(数据持久化)
容器可以使用真机的目录,或者共享存储作为存储卷。

启动docker时,将真机的目录挂在到docker下:

docker run -it -v 真机目录:docker中目录 容器名
mkdir /tmp/docker_data
docker run -it -v /tmp/docker_data:/abc myos:test	
# -v表示将本地目录与docker中的目录进行映射,会覆盖docker中对应目录的已有内容
# 真机上的/tmp/docker_data和docker中的/abc是同一个目录
# 多个容器可以使用真机上的同一个目录,从而实现数据的共享

# 一个docker可以使用真机上的多个目录作为卷
docker run -it -v /tmp/data1:/abc -v /tmp/data2:/def myos:test
# 多个docker也可以使用同一个目录作为卷,这样就实现了数据共享


如果想要实现多台主机上的多个docker容器共享一个目录
可以将NFS或者Ceph共享给多台主机,然后多台主机共享这个目录

在这里插入图片描述

例:使用NFS,实现多台主机上的多个docker共享同一个目录

NFS主机:
mkdir /data_dir
chmod 777 /data_dir

yum -y install nfs-utils
vim /etc/exports
/data_dir	*(rw, no_root_squash)

systemctl restart nfs-server
systemctl restart nfs-secure
exports -rv

echo "hello nfs docker!" > /data_dir/index.html


docker主机:
yum -y install nfs-utils nfs-server
systemctl restart nfs-server
mkdir /mnt/page
mount -t nfs 192.168.80.1:/data_dir /mnt/page

docker run -it -v /mnt/page:/var/www/html myhttp:test
docker run -it -v /mnt/page:/var/www/html myhttp:test
# 两个docker容器共享同一个目录,192.168.80.1主机的/mnt/page

Docker网络架构:

docker network list	#查看docker网络模型
bridge:桥接
host:仅主机,不常用
null:无网络,不常用


启动docker服务的时候,真机上会产生一个docker0的虚拟交换机,这个交换机连接所有的容器

docker network create --subnet=10.10.10.0/24 docker1	#创建一个名字为docker1的虚拟交换机,网段是10.10.10.0/24
# 通过ipconfig可以查看到这个交换机,但是名字不是docker1

docker run -it --network=docker1 myos:test #启动容器,指定使用的虚拟交换机

docker network inspect docker1	#查看虚拟交换机信息


在本地主机上(192.168.80.2)启动的docker容器,其他主机是不能访问这个容器的服务的
因此需要将docker容器的端口和本地主机上的端口进行绑定
docker run -it[d] -p 真机端口:容器服务对应端口 容器名
docker run -it[d] -p 80:80 myhttp:test	#将本地的80端口和docker容器的80端口进行绑定

写总结的第七十五天!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker中使用Prometheus,可以通过docker-compose实现持久化存储。具体步骤如下: 1. 创建一个docker-compose.yml文件,在其中定义Prometheus服务和数据卷。 ``` version: '3' services: prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' ports: - '9090:9090' volumes: prometheus_data: ``` 在上面的配置中,我们定义了一个名为“prometheus”的服务,它使用Prometheus的官方镜像,并将配置文件和数据卷映射到宿主机上。配置文件将在后面的步骤中创建。 2. 创建Prometheus配置文件。 在宿主机上创建一个名为“prometheus.yml”的文件,并添加以下内容: ``` global: scrape_interval: 15s # 默认的采集时间为15秒 evaluation_interval: 15s # 默认的评估时间为15秒 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' static_configs: - targets: ['node-exporter:9100'] # node-exporter的服务名为node-exporter ``` 在上面的配置中,我们定义了两个作业(jobs):“prometheus”和“node_exporter”。第一个作业是Prometheus自身的监控,而第二个作业是用于监控主机资源的node_exporter。 3. 启动Prometheus服务。 在命令行中进入docker-compose.yml所在的目录,并输入以下命令启动服务: ``` docker-compose up -d ``` 这将在后台启动Prometheus服务,并将数据存储在名为“prometheus_data”的数据卷中。 现在,可以通过浏览器访问localhost:9090来访问Prometheus仪表板。可以在仪表板中添加监控指标并设置报警规则。 总结: 上述步骤演示了如何使用docker-compose在Docker持久化存储Prometheus数据。通过这种方式,可以轻松地管理和监控容器化应用程序,并确保数据不会丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值