设为首页 收藏本站
查看: 984|回复: 0

[经验分享] docker管理应用程序数据、容器网络

[复制链接]

尚未签到

发表于 2019-2-20 10:24:54 | 显示全部楼层 |阅读模式
管理应用程序数据
  Docker提供三种方式将数据从宿主机挂载到容器中:


  • · volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。保存数据的最佳方式。
  • · bind mounts:将宿主机上的任意位置的文件或者目录挂载到容器中。
  • · tmpfs:挂载存储在主机系统的内存中,而不会写入主机的文件系统。如果不希望将数据持久存储在任何位置,可以使用
  • tmpfs,同时避免写入容器可写层提高性能。
  管理卷:路径都是在/var/lib/docker/volumes/下的,路径不可改变

[root@docker ~]# docker volume create nginx-vol
nginx-vol
[root@docker ~]# docker volume ls
DRIVER              VOLUME NAME
local               nginx-vol
[root@docker ~]# docker volume inspect nginx-vol
[
{
"CreatedAt": "2018-11-26T15:25:23+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/nginx-vol/_data",
"Name": "nginx-vol",
"Options": {},
"Scope": "local"
}
]
volumes
  用卷创建一个容器:
[root@docker ~]#  docker run -d --name=nginx-test1 --mount src=nginx-vol,dst=/usr/share/nginx/html -p 88:80 nginx:1.15
9d1d1fe4e0f189b8d66e7e6682ef725b441a355b7cb9e85ee62406249fcffd6d
  [root@docker ~]# cd /var/lib/docker/volumes/nginx-vol/_data    --这里的数据卷是和容器中的是一样的内容
[root@docker _data]# ls
50x.html  index.html
[root@docker _data]# echo 'nginx1' > index.html
  验证:
[root@docker _data]# curl 192.168.1.13:88
nginx1
  注意:


  • 如果没有指定卷,自动创建。
  • 建议使用--mount,更通用

Bind Mounts
  用卷创建一个容器:指定type=bind  --》这个是将宿主机上app/wwwroot 挂载到/usr/share/nginx/html 上
[root@docker _data]# docker run -d -it --name=nginx-test --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html -p 88:80 nginx
  验证:
[root@docker wwwroot]# curl 192.168.1.13:88
nginx1
进入到了该容器:
root@de4cc3ad76a0:/# cd /usr/share/nginx/html/
root@de4cc3ad76a0:/usr/share/nginx/html# ls
index.html
  注意:


  • 如果源文件/目录没有存在,不会自动创建,会抛出一个错误。
  • 如果挂载目标在容器中非空目录,则该目录现有内容将被隐藏。

小结
  Volume特点:


  • · 多个运行容器之间共享数据。
  • · 当容器停止或被移除时,该卷依然存在。
  • · 多个容器可以同时挂载相同的卷。
  • · 当明确删除卷时,卷才会被删除。
  • · 将容器的数据存储在远程主机或其他存储上
  • · 将数据从一台Docker主机迁移到另一台时,先停止容器,然后备份卷的目录(/var/lib/docker/volumes/)
  Bind Mounts特点:


  • · 从主机共享配置文件到容器。默认情况下,挂载主机/etc/resolv.conf到每个容器,提供DNS解析。
  • · 在Docker主机上的开发环境和容器之间共享源代码。例如,可以将Maven target目录挂载到容器中,每次在Docker主机
  • 上构建Maven项目时,容器都可以访问构建的项目包。
  • · 当Docker主机的文件或目录结构保证与容器所需的绑定挂载一致时

容器网络
  网络模式

bridge
–net=bridge
默认网络,Docker启动后创建一个docker0网桥,默认创建的容器也是添加到这个网桥中。
· host
–net=host
容器不会获得一个独立的network namespace,而是与宿主机共用一个。这就意味着容器不会有自己的网卡信息,而是使用宿主
机的。容器除了网络,其他都是隔离的。
· none
–net=none
获取独立的network namespace,但不为容器进行任何网络配置,需要我们手动配置。
· container   2个容器的网络可以通讯   
–net=container:Name/ID
与指定的容器使用同一个network namespace,具有同样的网络配置信息,两个容器除了网络,其他都还是隔离的。
· 自定义网络
与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名或者主机名容器之间网络通信。
容器网络访问原理


  验证:
注意系统必须指定 -it 不然启动失败
[root@docker wwwroot]# docker run -itd --net=bridge --name=icar1 -h icar1 centos
90b9a40f6290e6136e438bab5dcbd2720ed1b2c0a7b9c6abaede64574d4831e8
  [root@docker wwwroot]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
90b9a40f6290        centos              "/bin/bash"         4 seconds ago       Up 3 seconds                            icar1
[root@docker wwwroot]# docker exec -it 90b9a40f6290 bash




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-674767-1-1.html 上篇帖子: docker数据卷应用场景 下篇帖子: python docker registry 历史镜像批量删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表