千家信息网

Docker数据及网络管理

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、数据管理1. 挂载本地的目录到容器里[root@C7-lab1 ~]# docker run -tid -v /data/:/data centos bash0f1093aadf6ec852245
千家信息网最后更新 2026年10月31日Docker数据及网络管理

一、数据管理

1. 挂载本地的目录到容器里

[root@C7-lab1 ~]# docker run -tid -v /data/:/data centos bash

0f1093aadf6ec85224520a303f92282d12443ecf0305bbf15eb2f3526fd55212

[root@C7-lab1 ~]# docker exec -it 0f10 bash

[root@0f1093aadf6e /]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/docker-253:0-34406889-

tmpfs 490M 0 490M 0% /sys/fs/cgroup

/dev/mapper/centos-root 18G 4.8G 13G 28% /data

-v 用来指定挂载目录:前面的/data/为本地目录:后面的/data/为容器里的目录


2. 挂载数据卷

其实我们挂载目录的时候可以指定容器name如果不指定就随机定义了。比如上面我们没有指定它就生成了一个名字为loving_kowalevski这个名字可以使用命令 docker ps 看最右侧一列

docker run -itd --volumes-from loving_kowalevski aming/centos bash

这样我们使用szk/centos镜像创建了新的容器并且使用了 loving_kowalevski 容器的数据卷

自定义容器name

docker run -itd -v /data/:/mnt --name datavol aming/centos bash


3. 定义数据卷容器

有时候我们需要多个容器之间相互共享数据类似于linux里面的NFS所以就可以搭建一个专门的数据卷容器然后其他容器直接挂载该数据卷。

首先建立数据卷容器

docker run -itd -v /data/ --name insane_hopper centos bash

#注意这里的/data/是容器的/data目录并非本地的/data/目录如果想使用已经运行的容器则通过docker ps 查看 容器最后一行 名称使用--volumes-from指定然后让其他容器挂载该数据卷

[root@C7-lab1 ~]# docker run -itd --volumes-from insane_hopper centos bash

9c296da6550be50bbe90cce23bbebf1590245c114d572dea1ec4f9441f70dd07

[root@C7-lab1 ~]# docker run -itd --volumes-from insane_hopper --name web2 centos bash #还可以继续创建

88e24c0d19efb8c152271b0c07e3f262fbb6d03252b72b2fbc3433c30930f6eb

[root@C7-lab1 ~]# docker exec -it 88e2 bash

[root@88e24c0d19ef /]# ls /data/

szk.txt


4. 数据卷的备份与恢复

1备份

[root@C7-lab1 ~]# mkdir /vol_data_backup

[root@C7-lab1 ~]# docker run -itd --volumes-from insane_hopper -v /vol_data_backup/:/backup centos bash

ad6c5945f7509cf952f29be51733eddbdd588295c820f01e000b3346ce8b2779

[root@C7-lab1 ~]# docker exec -it ad6c bash

[root@ad6c5945f750 /]# ls /backup/

[root@ad6c5945f750 /]# tar cvf /backup/data.tar /data

[root@C7-lab1 ~]# ls /vol_data_backup/

data.tar

说明首先我们需要使用insane_hopper数据卷新开一个容器同时我们还需要把本地的/vol_data_backup/目录挂载到该容器的/backup下这样在容器中/backup目录里面新建的文件我们就可以直接在/vol_data_backup/目录中看到了。 然后再把/data/目录下面的文件打包到成data.tar文件放到/backup目录下面。

2恢复

思路 先新建一个数据卷容器再建一个新的容器并挂载该数据卷容器然后再把tar包解包。

新建数据卷容器docker run -itd -v /data/ --name data centos bash

挂载数据卷新建容器并解包docker run --volumes-from testvol2 -v /vol_data_backup/:/backup centos tar xvf /backup/data.tar


二、网络管理

四种网络模式

  • host模式使用docker run时使用--net=host指定docker使用的网络实际上和宿主机一样在容器内看到的网卡ip是宿主机上的ip

  • container模式使用--net=container:container_id/container_name多个容器使用共同的网络看到的ip是一样的

  • none模式使用--net=none指定这种模式下不会配置任何网络

  • bridge模式使用--net=bridge指定默认模式不用指定默认就是这种网络模式。这种模式会为每个容器分配一个独立的Network Namespace。类似于vmware的nat网络模式。同一个宿主机上的所有容器会在同一个网段下相互之间是可以通信的。

外部网络访问容器

首先使用centos镜像新建一个容器然后在该容器中安装httpd服务并启动

[root@C7-lab1 vol_data_backup]# docker commit -m "centos_with_httpd" -a "szk" 8d5192bdf660 centos_with_httpd

216d5f8f0c57f49c311e7b7a07c2767b14a1bd78cf3a11c7f923bea9df6a7b57

[root@C7-lab1 vol_data_backup]# docker p_w_picpaths

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

centos_with_httpd latest 216d5f8f0c57 11 seconds ago 337.7 MB

再把该容器导成一个新的镜像centos-httpd)然后再使用新镜像创建容器并指定端口映射

docker run -itd -p 5123:80 centos-httpd bash //-p 可以指定端口映射本例中将容器的80端口映射为本地的5123端口

[root@C7-lab1 vol_data_backup]# docker run -itd -p 8080:80 centos_with_httpd:latest

1cf3b634f537d6f2bfc8b17461e92dfa0f7370b91607f125f58cdbf2e545314b

[root@C7-lab1 vol_data_backup]# docker exec -it 1cf3 bash

[root@1cf3b634f537 /]# /usr/sbin/httpd

[root@1cf3b634f537 /]# vi /var/www/html/1.html

[root@C7-lab1 ~]# netstat -ntlup | grep 8080

tcp6 0 0 :::8080 :::* LISTEN 4069/docker-proxy

[root@C7-lab1 ~]# curl localhost:8080/1.html

szk

docker exec -it container_id bash

启动httpd httpd -k start

编辑1.html vi /var/www/html/1.html 随便写点东西

退出该容器exit

测试 curl 127.0.0.1:5123/1.html

-p后面也支持IP:port:ip:port 的格式比如

-p 127.0.0.1:8080:80

也可以不写本地的端口只写ip这样会随意分配一个端口

-p 127.0.0.1::80


容器互联

下载一个mysql镜像

docker pull mysql

新建一个容器命名为db

docker run -it -d -p 13306:3306 --name db mysql bash

在新建一个web容器并和db互联

docker run -it -d -p 12308:80 --name web --link db:db centos-httpd bash

配置桥接网络centos7)

为了使本地网络中的机器和Docker容器更方便的通信我们经常会有将Docker容器配置到和主机同一网段的需求。这个需求其实很容易实现我们只要将Docker容器和宿主机的网卡桥接起来再给Docker容器配上IP就可以了。

安装pipworkgit clone https://github.com/jpetazzo/pipework

cp ~/pipework/pipework /usr/local/bin/

开启一个容器 docker run -itd --net=none --name aming123 centos /bin/bash

pipework br0 aming123 172.7.15.201/24@172.7.15.107 #201为容器的ip@后面的ip为宿主机ip

brctl addif br0 eth0 #eth0为宿主机网卡这一步为把br0和eth0桥接起来

ip addr add 172.7.15.107/24 br0 #把107的ip绑定在br0上

docker exec -it aming123 /bin/bash #进去后ifconfig查看就可以看到新添加的ip

centos6:

cd /etc/sysconfig/network-scripts/; cp ifcfg-eth0 ifcfg-br0

vi ifcfg-eth0 //增加BRIDGE=br0删除IPADDR,NETMASK,GATEWAY,DNS1

vi ifcfg-br0//修改DEVICE为br0,Type为Bridge,把eth0的网络设置设置到这里来

service network restart

安装pipwork: git clone https://github.com/jpetazzo/pipework

cp ~/pipework/pipework /usr/local/bin/

开启一个容器: docker run -itd --net=none --name aming123 centos /bin/bash

rpm -Uvh rpm -Uvh https://repos.fedorapeople.org/openstack/EOL/openstack-grizzly/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm #不安会报错Object "netns" is unknown, try "ip help"

pipework br0 aming123 172.7.15.201/24

docker exec -it aming123 /bin/bash #进去后ifconfig查看就可以看到新添加的ip


容器 数据 目录 网络 模式 宿主 端口 镜像 宿主机 文件 网卡 配置 管理 之间 名字 备份 多个 网段 需求 互联 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技赋能下的互联网金融 互联网与科技发展 互联网络科技有限公司 猪兼强互联网科技 卓越科技互联网 招聘 科技伦理 互联网公司 深圳卡尔迅互联网科技有限公司怎么样 衡水科技产业互联网平台 深圳市运趣互联网科技有限公司 团飞科技与伯堂互联网服务平台 互联网系的金融科技公司 茂名市互联网科技产业园 宝灵互联网科技有限公司 华夏恒生科技与互联网科技 明优互联网科技有限公司 广州千川互联网科技有限公司 产业互联网科技服务公司 互联网安防科技感 广东猫王互联网科技有限公司电话 互联网 科技节活动 微视频大赛 哈尔滨大商圈互联网科技有限公司 上海卓越科技互联网 云信互联网科技有限公司 互联网科技卖菜 互联网科技公司发展 互联网科技作文 万达互联网科技 常德市电业局互联网科技部 世界互联网科技成果奖 10位科技互联网大佬
0