curl -s --unix-socket /var/run/docker.sock http:/v1.39/info
使用sdk 或 docker api 与守护进程交互,可以我们在docker应用中提供更多的解决方案。
PS:如果你对博文感兴趣,请关注我的公众号“木讷大叔爱运维”,与你分享运维路上的点滴。
问题引入组件备注jenkinsdocker运行docker-maven-pluginmaven插件jenkins 实现java项目的docker运行,15:01:22 [INFO] Copying src/main/docker/Dockerfile -> /var/jenkins_home/workspace/helloworld/target/do...
通过TCP公开Docker套接字
有时,运行受TLS支持的Docker远程API查询会很复杂。 为了在无需更改Docker守护程序的设置的情况下实现此目的,请使用此映像通过TCP公开Docker套接字。
另外,当前的Docker版本中似乎存在一些错误。
Docker套接字的映像的内部端口是12375 。 例如,您可以通过-p 1234:12375重新映射端口。 这将在Docker主机上的端口1234上暴露Docker套接字。
运行docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 1234:12375 --name expose -t tobilg/expose-socket在Docker / Boot2Docker主机上docker run -d -v /var/run/docker.sock:/va
vim /etc/sysconfig/docker
加入 other_args="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重启服务:
service docker restart
I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Broken pipe
导致这个错误的原因是 project.artifactId 可能包含了大写。
改正后:...
[INFO] I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied
1. 打开docker的远程api访问(参考:https://blog.csdn.net/csde12/article/details/70240721)
sudo vi /etc/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/...
jenkins使用docker-maven-plugin进行编译时发现没有权限,具体错误内容如下:
INFO: I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied
Jun 19, 2017 4:48:41 PM org
在CI上调用此命令遇到问题:
test:
[exec] Couldn’t connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
[exec]
[exec] If it’s at a no
场景:使用maven的dockerfile插件dockerfile-maven-plugin,在jenkins那台机器上,手动mvn install 不会出错,但是在jenkins图形化界面就报错了。
一开始考虑是因为maven版本,后来考虑是因为本地没有装docker[jenkins用的docker镜像],因为我是远程打包的。但是在机器上是配置了DOKCER_HOST 为远程 可连接上的机器。
真实原因:
jenkins里面环境变量缺失,没有用上系统的环境变量
解决办法:
原来是maven构建,现在改成自
当在 Docker 容器中运行 Nginx 时,可能会遇到权限问题。这是因为 Docker 默认以非特权用户运行容器,而 Nginx 需要特权用户才能正常运行。
为了解决这个问题,可以使用以下方法:
1. 在 Dockerfile 中添加以下命令,以切换到特权用户:
USER root
2. 在 Docker Compose 文件中,可以使用以下命令,将容器用户设置为特权用户:
user: root
3. 在运行 Docker 容器时,可以使用以下命令,以特权模式运行容器:
docker run --privileged -d nginx
使用以上方法之一,即可解决 Docker 容器没有权限运行 Nginx 的问题。