如何将文件从当前docker容器复制到另一个容器

时间:2017-04-23 09:25:50

标签: node.js docker dockerfile

我正在构建一个带有nodejs应用程序的docker容器,该应用程序将从meteorJS构建。对于构建,使用 shell runner (`meteor build / opt / project / build / core --directory),因为这都是在gitlab CI中完成的。

build:
  stage: build
  tags:
    - deploy
  before_script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - meteor npm install
    - meteor build /opt/project/build/core --directory
  script:
    - cd /opt/project/build/core/bundle
    - docker build -t $CI_REGISTRY_IMAGE:latest .

因此,应用程序的文件现在位于/opt/project/build/core。现在我想将这些文件复制到另一个docker镜像(project-e2e:latest)

我试着做

docker cp /opt/project/build/core/bundle project-e2e:latest/opt/project/build/core

但这给了我错误

Error response from daemon: No such container: project-e2e

但是我知道,容器正在运行:

$ docker ps

CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS                PORTS                                      NAMES
a238132e37a2        project-e2e:latest                       "/bin/bash"              14 hours ago        Up 14 hours                                                      clever_kirch

也许问题是,我试图复制出来的shell跑者码头图像,目标项目-e2e在外面'?

1 个答案:

答案 0 :(得分:0)

如果要将生成的文件放入容器中,可以使用docker复制它们:

docker cp nightwatch:/opt/project/build/core/your_file <your_local_path>

基本上模式是:

docker cp <source> <target>

如果源/目标是容器,则必须使用:

<container_name>:<path_inside_container>