一台服务器系统为: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 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. 在 Virtual Box 中为 CentOS7 mini 配置双网卡

    1. 配置过程 1.1 需求分析 要同时满足虚拟机访问互联网和远程连接,需要配置两块网卡. 一块为 NAT 网络,这块用来访问互联网. 另一块为 Host-Only 网络,进行远程连接.   1.2 ...

  2. 团队作业7——第二次项目冲刺(Beta版本)day2

    项目成员:  曾海明(组长):201421122036 于波(组员):201421122058 蓝朝浩(组员):201421122048 王珏 (组员):201421122057 叶赐红(组员):20 ...

  3. PyQt5--QCheckBox

    1 # -*- coding:utf-8 -*- ''' Created on Sep 20, 2018 @author: SaShuangYiBing Comment: ''' import sys ...

  4. (转)python3 urllib.request.urlopen() 错误UnicodeEncodeError: 'ascii' codec can't encode characters

    代码内容: url = 'https://movie.douban.com/j/search_subjects?type=movie'+ str(tag) + '&sort=recommend ...

  5. Netty入门(十)解码分隔符和基于长度的协议

    我们需要区分不同帧的首尾,通常需要在结尾设定特定分隔符或者在首部添加长度字段,分别称为分隔符协议和基于长度的协议,本节讲解 Netty 如何解码这些协议. 一.分隔符协议 Netty 附带的解码器可以 ...

  6. VS2012中使用SOS调试CLR

    之前看了<用WinDbg探索CLR世界>的一些列文章,发现SOS真的是一个非常好的调试.net的工具, 然后又惊喜的在http://blogs.msdn.com/b/marioheward ...

  7. RedHat Enterprise Linux 6.4使用Centos 6的yum源问题

    RedHat Enterprise Linux 6.4使用Centos 6的yum源问题 作为一名新手,学习Linux已经一个月了,其间遇到了不少问题,而今天笔者遇到的问题是 #yum install ...

  8. WorldWind源码剖析系列:地形瓦片类TerrainTile和地形瓦片服务类TerrainTileService

    地形瓦片类TerrainTile 用来抽象封装用户漫游中所请求的地形瓦片数据类型. 地形瓦片服务类TerrainTileService提供了从BIL(Binary Interleaved by Lin ...

  9. Python2.7-zipfile

    zipfile模块,提供了基本操作后缀为“zip”的文件的接口,一般使用 ZipFile 类完成操作 1.模块方法 zipfile.is_zipfile(filename):判断 filename 是 ...

  10. grpc & pb 环境配置

    grpc 官方中文文档:http://doc.oschina.net/grpc?t=60140 grpc github仓库:https://github.com/grpc/grpc protobuf ...