当前位置: 首页 > article >正文

如何在 docker 容器内部运行 docker命令

场景:

有些场景在容器内部需要调用 docker 命令。为此,本文梳理2种可以在容器内部执行docker命令的方法。

方法1:基于 docker.sock

/var/run/docker.sock是默认的Unix socket(套接字),socket是同一机器中进程间通讯的一种方式。Docker daemon 默认监听docker.sock。比如可以使用下述命令获取 docker engine 的版本信息,以下在宿主机上执行。

那么如何在 docker 内运行 docker呢?只需要将宿主机的 docker 命令和 套接子映射到容器内部即可。

docker run --privileged --name='test_triton_jason' -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -itd your-images bash

进入到容器内部可以正常运行docker命令:就可以正常使用了。

实例:我想在code-server中可以执行docker宿主机的命令,我的安装如下:

docker run -it --name code-server -p 8080:8080 \
  -v "/var/run/docker.sock:/var/run/docker.sock" \
  -v "/usr/bin/docker:/usr/bin/docker" \
  -v "/home/docker/code-server/.config:/root/.config" \
  -v "/home/docker/code-server/.local:/root/.local" \
  -v "/home/docker:/home/docker" \
  -u "$(id -u):$(id -g)" \
  -e "DOCKER_USER=$USER" \
codercom/code-server:latest

方法2:使用dind

该方法其实是在container内部创建一个子 container,除非真的是需要在container内部构建containers 和 images,否则一般建议使用方法1。
创建一个名为dind-test的容器:

docker run --privileged -d --name dind-test docker:dind

进入容器:

docker exec -it dind-test /bin/sh

在子容器内运行:

docker run --privileged --name='test_triton_jason_v3' --net=host --ipc=host -v /data/home/:/home -w /home -itd -image bash

可以看出,此时在容器内部可以执行 docker命令。


http://www.kler.cn/a/273968.html

相关文章:

  • 【简博士统计学习方法】3. 统计学习方法的三要素
  • HTML 显示器纯色亮点检测工具
  • STM32 拓展 电源控制
  • Python自学 - 函数初步(内置函数、模块函数、自定义函数)
  • kafka使用以及基于zookeeper集群搭建集群环境
  • UCAS-算法设计与分析(专硕)-复习参考
  • 活动报名 | 数能涌现,三生万物,长安链发布三周年庆暨生态年会邀您共聚
  • 微信公众号 H5本地调试配置 hosts + nginx + openssl
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Path)
  • AI将如何影响我们的生活?
  • 快速高效地数据分析处理:QtiPlot for Mac中文直装版 兼容M
  • Codeforces Round 932 (Div. 2) D. Exam in MAC【正难则反+容斥原理】
  • 【Unity】CatlikeCoding SRP
  • PHP反序列化--pop链
  • 手势追踪技术在HTC VIVE中的应用与实现
  • USART串口
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级的理解
  • 二、yocto 集成ros2(基于raspberrypi 4B)
  • 【经验分享】Wubuntu------体验Windows和Ubuntu的结合体
  • VUE3 自定义指令
  • [游戏开发][Unity] 导出Xcode工程,完成调试与发布
  • KKVIEW远程: TODESK退出了还能远程吗
  • 【C++】手撕AVL树
  • Python库Gym:打开机器学习与强化学习的大门
  • 深入解析分布式ID生成机制
  • OpenAI 的 GPTs 提示词泄露攻击与防护实战:防御卷(二)