• docker容器内调用宿主机docker执行


    docker相关的命令和依赖使用-v挂载到容器

    docker run -it -d  
    
    • 1

    –restart=always -u root
    -v /usr/bin/docker:/usr/bin/docker
    -v /var/run/docker.sock:/var/run/docker.sock
    -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
    镜像名+(命令,映射卷,端口…)
    docker run 参数说明:
    –restart=always #Docker重启后该容器也为随之重启
    -u root
    #以root的身份去运行镜像(避免在容器中调用Docker命令没有权限)
    #最好使用docker用户去运行
    -v /usr/bin/docker:/usr/bin/docker
    ##本地volume:容器volume##
    #将宿主机的docker命令挂载到容器中
    #可以使用which docker命令查看具体位置
    #或者把挂载的参数改为: -v $(which docker):/usr/bin/docker
    -v /var/run/docker.sock:/var/run/docker.sock
    #容器中的进程可以通过它与Docker守护进程进行通信
    -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
    #libltdl.so.7是Docker命令执行所依赖的函数库
    #容器中library的默认目录是 /usr/lib/x86_64-linux-gnu/
    #把宿主机的libltdl.so.7 函数库挂载到该目录即可
    #可以通过whereis libltdl.so.7命令查看具体位置
    #注意:
    #centos7位置/usr/lib64/libltdl.so.7
    #ubuntu位置/usr/lib/x86_64-linux-gnu/libltdl.so.7

    为当前用户赋予执行docker命令的权限

    如果之前为docker创建过用户,则需要执行以下命令,没有的话直接跳过
    #则需要把将当前用户加入docker组
    sudo gpasswd -a ${USER} docker
    
    #或者将当前用户直接加到文件中
    sudo echo "docker:x:994:${USER}" >> /etc/group
    
    #查看docker用户组成员
    cat /etc/group |grep docker
    
    #重新启动docker服务
    sudo systemctl restart docker
    
    #当前用户退出系统重新登陆
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    应用出海新福祉,融云助IM社交迅速对齐海外用户体验
    webpack提升构建速度
    【C进阶】之结构体嵌套及对齐
    面试题 17.16. 按摩师
    [译]使用Python和Dash 创建一个仪表盘(上)
    浏览器简介
    java: java.lang.ExceptionInInitializerErrorcom.sun.tools.javac.code.TypeTags 报错
    飞机机场城市标签 易语言代码
    阿里p8实战总结SpringCloud微服务分布式系统文档
    3-Mask-RCNN理解
  • 原文地址:https://blog.csdn.net/jiong9412/article/details/126327545