一台服务器系统为:Ubuntu 18.04 LTS,上面建了git裸仓库,用于开发吧代码push到这里。同时WEB测试环境通过docker也部署在这台。通过git钩子post-receive,当有新代码提交是,就自动将最新的代码checkout到web测试目录,然后在手动重启容器,让java程序生效。由于代码更新频繁,手动重启太麻烦,就在git钩子post-receive脚本里增加了docker-compose restart的代码,然后提交代码是就会出现下面的错误:

remote: Couldn't connect to Docker daemon at http+docker://localunixsocket - isit running?
remote: If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

post-receive的脚本如下:

#!/bin/sh
WEBDIR=/data/webroot
/usr/bin/git --work-tree=${WEBDIR} clean -fd
/usr/bin/git --work-tree=${WEBDIR} checkout --force
#sudo chown -R www:www ${WEBDIR}
/usr/bin/docker-compose -f /docker-tomcat/docker-compose.yml restart

初看那个错误是提示docker-compose连不上docker daemon,连接docker daemon有两种方式,一种是通过TCP协议,一种是通过unixsocket。docker默认是通过unixsocket来通信的。

我在/var/run目录下找到了docker.sock文件:

原来这个文件的只有root用户和docker组用户可以访问,而我的git钩子是在git账号下运行的,于是:

usermod -aG docker git

把git用户加入到docker组,再次提交更行代码,容器可以自动重启了。

还有一种方法是修改docker daemon使用TCP协议启动:

find / -name docker.service

使用find找到docker.service 文件 /lib/systemd/system/docker.service

vim /lib/systemd/system/docker.service

在 ExecStart=/usr/bin/dockerd 后面加入 -H tcp://127.0.0.1:4243,保存后

systemctl daemon-reload
systemctl restart docker.service

重启docker daemon,通过ss可以看到已经监听4243端口

root@docker:/# ss -atol
State                  Recv-Q                  Send-Q                                    Local Address:Port                                     Peer Address:Port
LISTEN                 0                       128                                           127.0.0.1:4243                                          0.0.0.0:*
LISTEN                 0                       128                                       127.0.0.53%lo:domain                                        0.0.0.0:*
LISTEN                 0                       128                                             0.0.0.0:28022                                         0.0.0.0:*
LISTEN                 0                       5                                             127.0.0.1:ipp                                           0.0.0.0:*
LISTEN                 0                       128                                                [::]:28022                                            [::]:*
LISTEN                 0                       5                                                 [::1]:ipp                                              [::]:*    

同时需要设置环境变量$DOCKER_HOST。

$vim ~/.bashrc
export DOCKER_HOST=tcp://localhost:4243

这样就可以了

转载于:https://www.cnblogs.com/zheng-wei/p/10517355.html

Ubuntu 18.04下Couldn't connect to Docker daemon at http+docker://localunixsocket解决办法相关推荐

  1. 网易云音乐ubuntu 18.04下无法打开的解决办法

    为什么80%的码农都做不了架构师?>>>    网易云音乐ubuntu 18.04下无法打开的解决办法 网易云音乐在ubuntu18.04下无法打开,即显示不了界面,主要是因为环境变 ...

  2. Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

    关注公众号 风色年代(itfantasycc) 领 500G Java 微服务 开发资料 Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换_Linux教程_Linux公社-L ...

  3. 在双GPU(核显+NVIDIA)计算机中正确安装Ubuntu 18.04下的NVIDIA驱动程序(解决循环登录等问题)

    目录 前三次安装:各种坑 第一次安装:CUDA可用,但无法启动Steam 第二次安装:遇到循环登录问题 第三次安装:CUDA可用,可以启动Steam,但3D性能差 第四次安装:CUDA可用,Steam ...

  4. Ubuntu 18.04下搜狗拼音输入法选词面板乱码问题(通过更换输入法版本完美解决,一劳永逸)

    Ubuntu 18.04下搜狗拼音输入法选词面板乱码问题(通过更换输入法版本完美解决,一劳永逸) 卸载已安装的搜狗拼音输入法 安装搜狗拼音输入法,注意版本 卸载已安装的搜狗拼音输入法 卸载已安装的输入 ...

  5. Ubuntu 18.04 下wine的安装以及wine-mono, wine-gecko 的安装

    Ubuntu 18.04 下wine的安装以及wine-mono, wine-gecko 的安装 deepin-wine 的安装 安装方法: 问题汇总: wine 的安装 安装方法: 问题汇总: 因为 ...

  6. 本地搭建Wooyun漏洞库(二)——Ubuntu 18.04下搭建WooYun漏洞库

    本文参考https://github.com/grt1st/wooyun_search 这篇文章是建立在已经搭建好LAMP环境的基础上进行的,搭建方法可见:本地搭建Wooyun漏洞库(一)--Ubun ...

  7. Ubuntu 18.04 下多显卡超频设置

    Ubuntu 18.04 下多显卡超频设置 环境:ubuntu 18.04 nvidia-A2000 * 6 步骤1: 正常安装ubuntu 18.04 打开(软件和更新)的(附加驱动)并勾选: (n ...

  8. ORBSLAM2 安装与运行(Ubuntu 18.04下测试)

    ORBSLAM2 安装与运行(Ubuntu 18.04下测试) 依赖项 Pangolin github地址:https://github.com/stevenlovegrove/Pangolin.gi ...

  9. ROCm与tensorflow在ubuntu 18.04下的安装教程

    ROCm与tensorflow在ubuntu 18.04下的安装教程     本来准备买Nvidai的显卡,可是囊中羞涩再加上听说AMD的卡也能使用tensorflow进行深度学习加速了,所以1149 ...

最新文章

  1. java layoutinflater_LayoutInflater(布局服务)
  2. github:已经提交并push后再次追加提交
  3. ant的if-else
  4. css 相对单位rem详解
  5. 【java】二维数组的应用
  6. 如何直接删除mysql中的重复数据_如何删除mysql数据库中重复的数据(部分重复)?...
  7. vscode如何设置大小写转换的快捷键
  8. 中奖记录html页面,微信小程序 中奖纪录列表滚动
  9. 三元运算 微信小程序_微信小程序使用三元运算符代替wx:if
  10. pandas中的concat操作
  11. zookeeper节点创建
  12. Java进行数据统计分析
  13. 计算机等级考试17周岁能考吗,他,8岁计算机过二级,16岁被保送清华,信息类竞赛大奖拿到手软...
  14. 字符取模 linux 软件,字符取模显示原理
  15. 第三章 事物的联系,发展及其规律
  16. 天正服务器不显示,天正菜单无法显示怎么办?
  17. 完全用 Linux 工作
  18. 推荐计算机科学类的经典书籍 (转)
  19. vue发布订阅模式,发布订阅模型
  20. 鼎信goip对接VOS指南

热门文章

  1. cpu 被挂起和阻塞_同步异步阻塞非阻塞并发并行讲解
  2. 35岁以上还没结婚的男女们,过的如何?
  3. 事业编前提下,在一个大单位工作好还是在一个小单位工作好?
  4. 退休是否需要等到对应日再进行办理?
  5. 给大家讲一个被社区团购小程序套路的经历吧
  6. 传统企业是滚雪球逻辑
  7. In this way, Wang Xing became Li Xiang’s closest
  8. 交叉编译iptables1.4.12的问题
  9. druid连接池mysql自动关闭_探究Druid连接池“违反协议”异常
  10. sql脚本导入sql_学习SQL:SQL脚本