标签: docker-copy

COPY与docker但排除在外

在Dockerfile中,我有

COPY . .
Run Code Online (Sandbox Code Playgroud)

我想排除整个目录,在我的例子中,node_modules目录.

像这样的东西:

   COPY [all but **/node_modules/**] .
Run Code Online (Sandbox Code Playgroud)

Docker可以实现吗?

docker dockerfile docker-copy

168
推荐指数
8
解决办法
7万
查看次数

容器内的docker视图目录

我正在尝试将一些文件从我的docker容器复制到我的localhost,我阅读了文档说明这样做的方法

docker cp 'container':path/to/file dest/path 
Run Code Online (Sandbox Code Playgroud)

但是这需要我知道容器中我想要的路径和目录,如何查看容器的目录?我试过docker diff和docker inspect但是这些没有显示容器的文件目录

docker docker-container docker-copy

8
推荐指数
1
解决办法
1万
查看次数

Docker 多阶段:如何在阶段之间复制构建的文件?

我是 Docker 的初学者,我正在尝试分两个阶段构建映像,如下所述:https : //docs.docker.com/develop/develop-images/multistage-build/

您可以有选择地将工件从一个阶段复制到另一个阶段

查看那里给出的示例,我认为可以在第一阶段构建一些文件,然后将它们提供给下一个阶段:

FROM golang:1.7.3 AS builder
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html  
COPY app.go    .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest  
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /go/src/github.com/alexellis/href-counter/app .
CMD ["./app"]  
Run Code Online (Sandbox Code Playgroud)

(示例取自上述链接页面)

那不是应该做的COPY app.go .COPY --from=builder /go/src/github.com/alexellis/href-counter/app .应该做的吗?

我可能对正在发生的事情有一个完全的误解,因为当我尝试做类似的事情时(见下文),似乎COPY第一阶段的命令无法看到刚刚构建的文件(我可以确认它们实际上是使用一个RUN ls步骤构建的,但是我得到了一个lstat <the file>: no such file or directory错误)。

事实上,我可以收集到的大多数其他信息COPY(除了上面链接中的示例),而是表明这COPY实际上是为了从 …

docker dockerfile docker-copy docker-multi-stage-build

8
推荐指数
1
解决办法
4716
查看次数

将整个目录从容器复制到主机

我正在尝试将整个目录从我的docker映像复制到本地计算机.

图像是一个keycloak图像,我想复制主题文件夹,以便我可以处理自定义主题.

我正在运行以下命令 -

docker cp 143v73628670f:keycloak/themes ~/Development/Code/Git/keycloak-recognition-login-branding
Run Code Online (Sandbox Code Playgroud)

但是我收到以下回复 -

Error response from daemon: Could not find the file keycloak/themes in container 143v73628670f
Run Code Online (Sandbox Code Playgroud)

当我使用 - 连接到我的容器时 -

 docker exec -t -i 143v73628670f /bin/bash
Run Code Online (Sandbox Code Playgroud)

我可以使用 - 导航到主题 -

cd keycloak/themes/
Run Code Online (Sandbox Code Playgroud)

我可以看到它位于那里,文件在终端中是预期的.

我在Mac上本地运行实例.

如何将整个主题文件夹复制到本地计算机?我做错了什么?

docker keycloak docker-copy

6
推荐指数
1
解决办法
1万
查看次数

COPY和ADD的`--chown`选项不允许变量。有解决方法吗?

在Dockerfile中,将目录复制为非root用户(例如$ UID 1000)的常用方法如下:

COPY --chown=1000:1000 /path/to/host/dir/ /path/to/container/dir
Run Code Online (Sandbox Code Playgroud)

但是,我想改用变量。例如

ARG USER_ID=1000
ARG GROUP_ID=1000
COPY --chown=${USER_ID}:${GROUP_ID} /path/to/host/dir/ /path/to/container/dir
Run Code Online (Sandbox Code Playgroud)

但这是不可能的。有解决方法吗?

请注意,我知道一个可能的解决方法是将目录复制为root,然后在目录上运行chown(变量与可以很好地配合使用RUN)。但是,仅在单独的命令中使用chown时,图像的大小会增加。

dockerfile docker-copy

6
推荐指数
1
解决办法
880
查看次数

Docker 忽略多阶段构建的文件

我需要在第一阶段排除 Docker COPY 中的文件,但在第二阶段的另一个 COPY 中使用它,因为它会破坏 Docker 层缓存。

我的文件夹结构如下:

src/
public/
.env
package.json
nginx.conf
Run Code Online (Sandbox Code Playgroud)

我的 Dockerfile 如下所示:

FROM node:14 as builder                   # line-1
WORKDIR /app                              # line-2
COPY . /app                               # line-3 nginx.conf is copied but not needed
RUN yarn && yarn build                    # line-4

FROM nginx:1.21.1                         # line-5
WORKDIR /app                              # line-6
COPY --from=builder /app/build /app/build # line-7
COPY nginx.conf /app                      # line-8 nginx.conf is copied

CMD nginx -c /app/nginx.conf              # line-9
Run Code Online (Sandbox Code Playgroud)

当我更改nginx.confdocker 层缓存时,由于第三行,缓存变得无效。

我无法使用,.dockerignore因为它会在两个阶段都忽略它。 …

docker dockerfile docker-image docker-copy docker-layer

5
推荐指数
0
解决办法
1806
查看次数

如何通过docker cp复制目录?

我想将目录从主机复制到容器,但无法使用以下命令:

$ docker cp -r <a-dir> <a-container-ID>:/destination/path
unknown shorthand flag: 'r' in -r
Run Code Online (Sandbox Code Playgroud)

使用scp -rshell 命令我可以做到,所以我也期待docker cp -r

如何在不使用 make compress .tar 文件及其提取物的情况下克服它?

shell ubuntu docker docker-copy

4
推荐指数
1
解决办法
6941
查看次数

Docker-Compose无法复制haproxy.cfg

我的问题是我有一个docker-compose.yml文件和一个haproxy.cfg文件,我想让docker-compose将haproxy.cfg文件复制到docker容器中。根据Docker composer发布后的复制文件,我可以使用卷来执行此操作,但就我而言,出现以下错误。谁能帮助我实现这一目标。

以下是代码和所有内容

docker-compose.yml

version: "3.3"
services:
 ###After all services are up, we are initializing the gateway
 gateway:
  container_name: gateway-haproxy
  image: haproxy
  volumes:
    - .:/usr/local/etc/haproxy
  ports:
   - 80:80
  network_mode: "host"
Run Code Online (Sandbox Code Playgroud)

资料夹结构

在此处输入图片说明

命令输出

root@ubuntu:/home/karunesh/Desktop/Stuff/SelfStudy/DevOps/docker# docker-compose up
Creating gateway-haproxy ... 
Creating gateway-haproxy ... done
Attaching to gateway-haproxy
gateway-haproxy | <7>haproxy-systemd-wrapper: executing /usr/local/sbin/haproxy -p /run/haproxy.pid -f /usr/local/etc/haproxy/haproxy.cfg -Ds 
gateway-haproxy | [ALERT] 219/163305 (6) : [/usr/local/sbin/haproxy.main()] No enabled listener found (check for 'bind' directives) …
Run Code Online (Sandbox Code Playgroud)

haproxy docker docker-compose docker-volume docker-copy

3
推荐指数
2
解决办法
2033
查看次数

How to cp data from one container to another using kubernetes

Say we have a simple deployment.yml file:

apiVersion: apps/v1 
kind: Deployment
metadata:
  namespace: ikg-api-demo
  name: ikg-api-demo
spec:
  selector:
    matchLabels:
      app: ikg-api-demo
  replicas: 3 
  template:
    metadata:
      labels:
        app: ikg-api-demo
    spec:
      containers:
        - name: ikg-api-demo
          imagePullPolicy: Always
          image: 913xxx371.dkr.ecr.us-west-2.amazonaws.com/main_api:c56cefbd0c81142558cf814cba7d7cd75d7cb6a7
          ports:
            - containerPort: 80
Run Code Online (Sandbox Code Playgroud)

the problem is that this image/container depends on another image/container - it needs to cp data from the other image, or use some shared volume.

How can I tell kubernetes to download another image, run it as a container, …

kubernetes docker-volume docker-copy amazon-eks eks

2
推荐指数
1
解决办法
125
查看次数