gpt4 book ai didi

ubuntu - Docker :/var/run/docker. sock:没有这样的文件或目录

转载 作者:行者123 更新时间:2023-12-02 19:12:06 25 4
gpt4 key购买 nike

基础设施

我正在尝试建立一个 mesos<->marathon 集群分发容器。
在我的主服务器上,我有:

  • 动物园管理员
  • docker registry v2(端口 5000)wo 凭据
  • 一个带有supervisord + mesos + marathon的容器

  • 此外,我有一个奴隶(在同一台服务器上)。
    $docker ps 
    192.168.0.38:5000/mesos-slave:prod mesos-slave-1
    192.168.0.38:5000/mesos-master:generic mesos-master
    jplock/zookeeper 0.0.0.0:2181->2181/tcp, 0.0.0.0:2888->2888/tcp, 0.0.0.0:3888->3888/tcp nostalgic_visvesvaraya
    registry:2 0.0.0.0:5000->5000/tcp registry

    问题

    我的问题是我不能让马拉松向奴隶发送 docker 图像。

    我认为这来自从站的配置。
    $ docker exec -ti mesos-slave-1 /bin/bash
    root@xw8600-Workstation:/# docker info
    Get http:///var/run/docker.sock/v1.19/info: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

    问题出在 {dial unix/var/run/docker.sock: no such file or directory} 上。

    Slave 的 Dockerfile

    从站的 Dockerfile 看起来或多或少是这样的:
    FROM 192.168.0.38:5000/supervisor:prod

    RUN apt-get -y --fix-missing update
    RUN apt-get install -y --force-yes mesos

    #Mesos
    RUN echo 'docker,mesos' > /etc/mesos-slave/containerizers
    RUN echo '5mins' > /etc/mesos-slave/executor_registration_timeout

    COPY mesos-slave.conf /etc/supervisor/conf.d/mesos-slave.conf

    CMD supervisord -c /etc/supervisor.conf

    mesos-slave.conf 看起来像这样:
    [program:mesos-slave]
    command=mesos-slave --master=%(ENV_MASTER)s --ip=%(ENV_IP)s --hostname=%(ENV_HOSTNAME)s --resources=%(ENV_RESOURCES)s --attributes=%(ENV_ATTRIBUTES)s --port=%(ENV_SLAVE_PORT)s --log_dir=/etc/mesos/logs --containerizers=docker,mesos --no-switch_user

    我总是在错误日志中得到相同的错误。拉 rstudio 的示例:
    failed to start: Failed to 'docker -H unix:///var/run/docker.sock pull 192.168.0.38:5000:rocker/rstudio': exit status = exited with status 1 stderr = Post http:///var/run/docker.sock/v1.19/images/create?fromImage=192.168.0.38%3A5000%3Arocker%2Frstudio%3Alatest: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

    我做错了什么?

    编辑

    看来我无法启动docker
    root@xw8600-Workstation:/var/log/upstart# sudo /etc/init.d/docker status
    * Docker is not running
    root@xw8600-Workstation:/var/log/upstart# sudo /etc/init.d/docker start
    * Starting Docker: docker
    ...done.
    root@xw8600-Workstation:/var/log/upstart# sudo /etc/init.d/docker status
    * Docker is not running

    编辑 2

    按照我的问题 here :我有一个 mesos 从属(v1.7),我尝试在其上运行 docker 中的 docker。
    当我在容器内时,我收到以下错误日志:
    $ cat /var/log/docker.log 
    time="2015-10-17T12:27:40.963674511Z" level=fatal msg="Error starting daemon: error initializing graphdriver: operation not permitted"

    我在互联网上找不到太多信息,这里有一些类似的问题:
  • https://github.com/jpetazzo/dind/issues/89
  • https://github.com/docker/docker/issues/14543
  • Docker hello-world on Ubuntu - permission denied
  • 最佳答案

    我在 CoreOS 上运行了一个完全 dockerized 的 Mesos/Marathon 基础设施。如果你想看看systemd service definitions ,随意...

    我认为您缺少传递 Docker unix 套接字和 cgroups到你的从容器,见

  • https://github.com/tobilg/coreos-setup/blob/master/etc/systemd/system/mesos-slave.service#L17

  • docker 运行命令:
    docker run -d \
    -v /sys/fs/cgroup:/sys/fs/cgroup \
    -v /usr/bin/docker:/usr/bin/docker:ro \
    -v /var/run/docker.sock:/var/run/docker.sock \
    [your other options] \
    192.168.0.38:5000/mesos-slave:prod

    就个人而言,我也会为 Marathon 运行另一个单独的容器,而不是让它与 Mesos Master 具有相同的镜像,但这可能是个人喜好问题。

    关于ubuntu - Docker :/var/run/docker. sock:没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746286/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com