通过docker容器控制宿主机其他容器---监控容器

12 篇文章 0 订阅
9 篇文章 0 订阅

Docker架构

Docker框架主要由Docker Client、Docker Daemon、Docker Registry、Driver、Docker Container五个模块组成,另外还有Graph和Libcontainer两个辅助模块,如下图所示:
docker架构
用户通过docker-client向daemon发送命令操作docker,根据这个原理,可以通过挂载目录的方式让容器发送命令来操作其它docker容器。

docker-compose 配置文件

version: '3'
services:
  control:
    image: ubuntu
    container_name: ysfcontrol
    privileged: true
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /usr/bin/docker:/usr/bin/docker:ro
      - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose:ro
      - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7:ro
      - /opt:/opt:rw
    command: sleep 100000 

依赖目录说明:- /var/run/docker.sock
   docker.sock是daemon监听的套接字,
   通过该套接字可以向daemon发送操作docker的命令,挂载该目录可以实现在容器中操控其他docker的命令
   eg:curl -s --unix-socket /var/run/docker.sock http:/images/json
依赖目录说明:- /usr/lib/x86_64-linux-gnu/libltdl.so.7
     libltdl.so.7是Docker命令执行所依赖的函数库,可以通过whereis libltdl.so.7命令查看具体位置
依赖目录说明:- /usr/bin/docker
   将宿主机的docker命令挂载到容器中, 
   这样在容器中也可以使用docker ps 等命令操作宿主机的容器,
   可以使用which docker命令查看具体位置
依赖目录说明:- /usr/local/bin/docker-compose
   同上将宿主机的docker-compose命令挂载到容器中, 
   这样在容器中也可以使用docker-compose ps 等命令操作宿主机的容器
小结:
   通过挂载三个目录就可以在容器中通过curl、docker、docker-compose等工具操作其它容器

结果图:

结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值