设为首页 收藏本站
查看: 1489|回复: 0

[经验分享] Debian 下docker 开启远程api失败

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-29 09:45:53 | 显示全部楼层 |阅读模式
                      系统版本:
    Debian 8.3

问题: Debian下增加dcoker的远程api,始终不能打开网络端口。

过程:
修改/etc/default/docker 增加一行
     DOCKER_OPTS="-H 0.0.0.0:2376 -H unix:///var/run/docker.sock"
重启docker:
     service docker restart

查看端口是否打开:
     lsof -i:2376  没有任何返回。

查看日志:

Mar 28 12:44:32 docker1 docker[3491]: time="2016-03-28T12:44:32.665294330-04:00" level=info msg="[graphdriver] using prior storage driver \"aufs\""
Mar 28 12:44:32 docker1 docker[3491]: time="2016-03-28T12:44:32.667332848-04:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Mar 28 12:44:32 docker1 docker[3491]: time="2016-03-28T12:44:32.673179732-04:00" level=info msg="Firewalld running: false"
Mar 28 12:44:34 docker1 docker[3491]: time="2016-03-28T12:44:34.908750963-04:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Mar 28 12:44:36 docker1 docker[3491]: time="2016-03-28T12:44:36.035544113-04:00" level=warning msg="Your kernel does not support cgroup memory limit: mountpoint for memory not found"
Mar 28 12:44:36 docker1 docker[3491]: time="2016-03-28T12:44:36.035820306-04:00" level=warning msg="Your kernel does not support cgroup cfs period"
Mar 28 12:44:36 docker1 docker[3491]: time="2016-03-28T12:44:36.035864016-04:00" level=warning msg="Your kernel does not support cgroup cfs quotas"
Mar 28 12:44:36 docker1 docker[3491]: time="2016-03-28T12:44:36.037271326-04:00" level=info msg="Loading containers: start."
Mar 28 12:44:36 docker1 docker[3491]: .
Mar 28 12:44:36 docker1 docker[3491]: time="2016-03-28T12:44:36.039178384-04:00" level=info msg="Loading containers: done."
Mar 28 12:44:36 docker1 docker[3491]: time="2016-03-28T12:44:36.039227903-04:00" level=info msg="Daemon has completed initialization"
Mar 28 12:44:36 docker1 docker[3491]: time="2016-03-28T12:44:36.039262276-04:00" level=info msg="Docker daemon" commit=20f81dd execdriver=native-0.2 graphdriver=aufs version=1.10.3
Mar 28 12:44:36 docker1 docker[3491]: time="2016-03-28T12:44:36.059353006-04:00" level=info msg="API listen on /var/run/docker.sock"
可见没有报任何错误,只是打开了/var/run/docker.sock,没有打开2376端口。
接着排查问题
root@docker1:/var/log# /etc/init.d/docker stop
[ ok ] Stopping docker (via systemctl): docker.service.
root@docker1:/var/log# ps -ef |grep docker
avahi      484     1  0 07:23 ?        00:00:00 avahi-daemon: running
root      3723  2314  0 12:53 pts/1    00:00:00 grep docker
root@docker1:/var/log# bash -x /etc/init.d/docker start
+ set -e
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
+ PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
+ BASE=docker
。。。。。。省略一部分
+ . /lib/lsb/init-functions
+++ run-parts --lsbsysinit --list /lib/lsb/init-functions.d
++ for hook in '$(run-parts --lsbsysinit --list /lib/lsb/init-functions.d 2>/dev/null)'
++ '[' -r /lib/lsb/init-functions.d/20-left-info-blocks ']'
++ . /lib/lsb/init-functions.d/20-left-info-blocks
++ for hook in '$(run-parts --lsbsysinit --list /lib/lsb/init-functions.d 2>/dev/null)'
++ '[' -r /lib/lsb/init-functions.d/40-systemd ']'
++ . /lib/lsb/init-functions.d/40-systemd
+++ _use_systemctl=0
。。。。。。省略一部分
+++ '[' xstart = xstart -o xstart = xstop -o xstart = xrestart -o xstart = xreload -o xstart = xforce-reload -o xstart = xstatus ']'
+++ systemctl_redirect /etc/init.d/docker start
+++ log_daemon_msg 'Starting docker (via systemctl)' docker.service

+++ '[' -z 'Starting docker (via systemctl)' ']'
+++ log_daemon_msg_pre 'Starting docker (via systemctl)' docker.service
。。。。。。省略一部分

[....] +++ '[' -z docker.service ']'

+++ echo -n 'Starting docker (via systemctl): docker.service'
Starting docker (via systemctl): docker.service+++ log_daemon_msg_post 'Starting docker (via systemctl)' docker.service
。。。。。。省略
看到这儿的时候明白了吧,还没没有执行到下面的start模块呢,服务就被systemctl服务接管了,设置的参数就不会生效了。
看一下docker:
root@docker1:/var/log# ps -ef |grep docker
avahi      484     1  0 07:23 ?        00:00:00 avahi-daemon: running
root      3741     1  0 12:56 ?        00:00:00 /usr/bin/docker daemon -H fd://
root      3816  2314  0 13:03 pts/1    00:00:00 grep docker
确实没有加载DOCKER_OPTS参数:
简单的做一下设置,把40-systemd这个脚本移动一下
root@docker1:/var/log# /etc/init.d/docker stop
root@docker1:/var/log# mv /lib/lsb/init-functions.d/40-systemd /lib/lsb/
启动docker
Starting Docker: dockerroot@docker1:/var/log# /etc/init.d/docker start
查看一下
root@docker1:/var/log# ps -ef |grep docker
avahi      484     1  0 07:23 ?        00:00:00 avahi-daemon: running [docker1.local]
root      3970     1  0 13:06 ?        00:00:00 /usr/bin/docker daemon -p /var/run/docker.pid -H docker1.y7tech.cn:2376 -H unix:///var/run/docker.sock
root      4080  2314  0 13:07 pts/1    00:00:00 grep docker
root@docker1:/var/log# lsof -i:2376
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker  3970 root    6u  IPv4  20313      0t0  TCP docker1.y7tech.cn:2376 (LISTEN)

哈哈,看到了吧,端口开启了......接下来远程调用一下
root@docker2:/etc# docker -H  docker1.y7tech.cn:2376  images
REPOSITORY                    TAG                 IMAGE ID            CREATED                  SIZE
192.168.12.138:5000/mongodb   v1.0                a9e3f0081258        Less than a second ago   408.8 MB
debian                        latest              f50f9524513f        3 weeks ago              125.1 MB

再看看本地是否正常
mqfeng@docker1:~$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Oh,Mygod,本地出现问题了。
我们能够看到/var/run/docker.socket 确实存在了。
mqfeng@docker1:~$ docker -H unix:///var/run/docker.sock images
REPOSITORY             TAG    IMAGE ID     CREATED         SIZE
192.168.12.138:5000/mongodb  v1.0  a9e3f0081258  7 hours ago      408.8 MB
debian               latest  f50f9524513f  3 weeks ago      125.1 MB
这样执行命令太笨了......查看一下docker的帮助,看看有没有什么好的方法没有。

daemon字段编辑本地配置文件:
/etc/profile ,添加变量
export DOCKER_HOST=tcp://docker1.y7tech.cn:2376
或者:
export DOCKER_HOST=unix:///var/run/docker.sock
mqfeng@docker1:~$ docker ps -a
CONTAINER ID      IMAGE    COMMAND     CREATED   STATUS    PORTS     NAMES

OK!正常了。
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-197236-1-1.html 上篇帖子: Dockerfile 下篇帖子: Docker下使用stress进行压力测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表