Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker compose up——build与docker compose build&&;码头工人整理_Docker_Docker Compose - Fatal编程技术网

docker compose up——build与docker compose build&&;码头工人整理

docker compose up——build与docker compose build&&;码头工人整理,docker,docker-compose,Docker,Docker Compose,我们试图在远程主机上构建并运行docker compose项目。我尝试使用: docker-compose -H 'ssh://remote_address' up --build 得到 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 所以我们试着: docker-compose -H 'ssh://remote_address' build d

我们试图在远程主机上构建并运行docker compose项目。我尝试使用:

docker-compose -H 'ssh://remote_address' up --build
得到

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
所以我们试着:

docker-compose -H 'ssh://remote_address' build
docker-compose -H 'ssh://remote_address' up

效果很好。我的问题是我在文件中找不到证据证明这是正确的行为。这是docker compose中的错误、功能还是我的环境中的错误?

我不确定第一个命令的错误,我的意思是
docker compose-H'ssh://ip'up--build
,因为它可能是一个真正的但是,但是上面提到的三个命令肯定有区别。我将尝试用我简单的方式解释:

  • 第一个命令是
    docker compose up--build
  • 此命令查找
    docker compose
    文件并重建图像,然后使其运行。假设您对
    docker compose
    文件进行了一些更改,因此当您仅运行
    docker compose
    时,您将收到一条警告,提示图像未重建,您应该运行
    docker compose up--build
    来重建它,并重新构建所有内容(尽管之前已经完成了某些操作,并且缓存中存在这些操作)

  • 第二个命令是
    docker compose build
  • 此命令仅基于
    docker compose
    构建您的图像,但不运行它。您可以通过
    docker image ls
    docker image
    查看构建的图像。同时执行
    docker ps-a
    时不应看到最近构建的映像正在运行

  • 第三个也是最后一个命令是
    docker compose up
  • 如果第一次输入此命令,它将尝试运行
    Dockerfile
    中的所有内容(如果存在)并下载基本映像等。然后生成映像并运行容器

    如果该映像以前构建过,则它只运行它


    与第一个命令不同,第三个命令只运行该图像的最新版本,但不会再次构建它。

    我猜这是Compose中的一个错误,并将通过进行后续操作。感谢您的解释,但是我的问题在于
    -H
    标志解释。似乎
    docker compose-up--build
    忽略它并尝试连接到
    unix:///var/run/docker.sock
    在我的环境中不可用。我已经阅读了docker关于
    -H
    的手册,看来主机服务器(在您的情况下,您的远程ssh服务器)上的套接字应该正在运行。如果我理解正确,您是否检查了docker是否在远程服务器中运行?正如我在问题中所写的,远程docker引擎正在运行,当我使用
    docker compose-H时,一切都按预期工作ssh://remote_host“构建和docker compose-H”ssh://remote_host'向上
    而不是
    docker compose-H'ssh://remote_host'向上--构建