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

时间:2022-12-29 11:41:57

  一台服务器系统为: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文件:

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

原来这个文件的只有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 127.0.0.1: 0.0.0.0:*
LISTEN 127.0.0.53%lo:domain 0.0.0.0:*
LISTEN 0.0.0.0: 0.0.0.0:*
LISTEN 127.0.0.1:ipp 0.0.0.0:*
LISTEN [::]: [::]:*
LISTEN [::]:ipp [::]:*

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

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

这样就可以了

Ubuntu 18.04下Couldn't connect to Docker daemon at http+docker://localunixsocket解决办法的更多相关文章

  1. ubuntu 18.04下Chromium设置为系统代理

    前言 在ubuntu 18.04下挂上ss后firefox能直接上google了但是chromium上不去 会出现下面两种情况 # This site can't be reached xxxxxx ...

  2. Ubuntu 18.04 下配置 HAXM 加速 Android模拟器

    Ubuntu 18.04 下配置 HAXM 加速 Android模拟器 最近在vmware环境下搭建ubuntu18.04开发环境,开始发现总是运行android模拟器在console提示加载如下错误 ...

  3. Ubuntu 18.04 下 emscripten SDK 的安装

    Ubuntu 18.04 下 emscripten SDK 的安装http://kripken.github.io/emscripten-site/docs/getting_started/downl ...

  4. Ubuntu 18.04下安装Steam*在线游戏平台

    Ubuntu 18.04下安装Steam*在线游戏平台 原创: 聆听世界的鱼 Linux公社 今天 Steam是由Valve公司开发的*在线游戏平台,是目前全球最大的综合性数字发行平台之一.它让你 ...

  5. 在Ubuntu 18.04 下安装mysql,没有初始密码,重设root密码

    在Ubuntu 18.04 下安装mysql 不知道是由于mysql更新为新版还是.Ubuntu18.04中的特性,安装过程中没有设置密码的环节,在网络上找了半天,总算解决了!特此记录下来,以便以后查 ...

  6. 在ubuntu 18.04下,无线网卡无驱动,连不上wifi,显示wifi没有适配器的解决方法

    近来因为做东西要用到linux环境,所以自己的笔记本在win10的系统上又安装了ubuntu 18.04版本的双系统,但是安装好以后,没有无线网卡的驱动,显示wifi没有适配器等字样,很纠结,前后研究 ...

  7. ubuntu 18.04下编译最新版本的KMS

    KMS:kurento媒体服务,即 kurento media server 很庞大的一个WEBRTC项目,GIT库主项目:https://github.com/Kurento 基础实现,修改了gst ...

  8. ubuntu 18.04下greenplum安装笔记(一)Linux下基础环境的搭建

    背景 需要构建一个用于数据仓库的分布式数据库集群. 每一个节点暂时不需要进行备份,同时也不考虑坏掉的情况. 每一个数据节点最好都不用进行过多的配置,安装起来方便. Greenplum的Shared-N ...

  9. 在 Ubuntu 18.04 下安装 fcitx 及搜狗拼音输入法

    感觉自己傻逼透了,之前在 16.04 时折腾着要装 ibus 和 rime 输入法,现在 18.04 默认安装 ibus 了,又因为 rime 的智能联想太弱,打字不爽,又想装回搜狗一劳永逸... 环 ...

随机推荐

  1. iOS TTF文件使用---改变字体

    TTF(True Type Font):是一种字库名称 TTF文件:是Apple公司和Microsoft公司共同推出的字体文件格式 使用: 1 获取字体文件 从各种渠道下载字体ttf,网站或从别的ip ...

  2. 为什么relativelayout.layoutParams的width为-1

    源码里看下就知道了.. -1不代表宽度,代表MATCH_PARENT常量的值public static final int FILL_PARENT = -1; public static final ...

  3. datagridview自动填充列头

    //填充datagridview dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

  4. angularjs--$watch、$watchGroup、$watchCollection含义

    angularjs的$watch.$watchGroup.$watchCollection使用方式   如果想在controller里面随时监听一个值的变化那就用$watch <p>    ...

  5. H5 data-&ast;容易忽略的问题

    H5添加了data-*属性,非常方便 但经常忽略小写的问题, H5要求属性名全部小写,驼峰式命名的习惯掉坑了 测试代码如下: <html> <head> <script ...

  6. 20180706001 - 动态添加 tabPage

    //        public TabPage Add(Form form, string str_frm_name)        {            form.Visible = true ...

  7. JustOj 1974&colon; 简单的事情 (组合数)

    题目描述 数学天才fans曾经说过一句话:组合数的计算是一件非常简单的事情.组合数的计算真的是一件非常简单的事情吗?请你自己去尝试一下吧! 输入 输入中的一些整数对n,m(m≤n≤20) 输出 输出其 ...

  8. scrapy 日志处理

    Scrapy生成的调试信息非常有用,但是通常太啰嗦,你可以在Scrapy项目中的setting.py中设置日志显示等级: LOG_LEVEL = 'ERROR' 日志级别 Scrapy日志有五种等级, ...

  9. 【JUC源码解析】DelayQueue

    简介 基于优先级队列,以过期时间作为排序的基准,剩余时间最少的元素排在队首.只有过期的元素才能出队,在此之前,线程等待. 源码解析 属性 private final transient Reentra ...

  10. &period;NETFramework、C&num;、VisualStudio 这三者之间关系,你了解吗!

    .NetFrameWork 是微软开发的以"虚拟机"运行,以通用语言运行库为基础,在其上面进行各种语言开发的一个开发平台. C# 是一个和平台更好交互,以托管在虚拟机上的一个语法糖 ...