我想创建一个泊坞窗图像.这是我的工作目录:Dockerfile.in test.json test.py
这是我的Dockerfile:
COPY ./test.json /home/test.json
COPY ./test.py /home/test.py
RUN python test.py
Run Code Online (Sandbox Code Playgroud)
当我启动此命令时:
docker build -f Dockerfile.in -t 637268723/test:1.0 .
它给了我这个错误:
`Step 1/5 : COPY ./test.json /home/test.json
---> Using cache
---> 6774cd225d60
Step 2/5 : COPY ./test.py /home/test.py
COPY failed: stat /var/lib/docker/tmp/docker-builder428014112/test.py:
no such file or directory`
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
我目前在做什么:
Dockerfile:
FROM python:3.5.1
ENV PYTHONUNBUFFERED 1
RUN mkdir /www
WORKDIR /www
ADD deps.txt /www/
RUN pip3 install -r deps.txt
ADD . /www/
RUN chmod 0755 /www/docker-init.sh
Run Code Online (Sandbox Code Playgroud)
构建命令:
docker build -t my-djnago-app:latest .
Run Code Online (Sandbox Code Playgroud)
标记:
docker tag my-djnago-app:latest lolorama/my-djnago-app-img:latest
Run Code Online (Sandbox Code Playgroud)
推动:
docker push lolorama/my-djnago-app-img:latest
Run Code Online (Sandbox Code Playgroud)
执行这些步骤后,存储库映像仍未更新.我一直收到这条消息 - "图层已经存在".
The push refers to a repository [docker.io/lolorama/my-django-app-img]
fd5aa641b308: Layer already exists
d9c60c6f98e8: Layer already exists
d9d14867f6d7: Layer already exists
64ce166099ca: Layer already exists
73b670e35c69: Layer already exists
5f70bf18a086: Layer already exists
9ea142d097a5: Layer already exists …Run Code Online (Sandbox Code Playgroud) 我想扩展我的 jenkins 映像以安装 docker,以便它可以从项目中构建 Dockerfile。我找到了一个很好的 docker 安装脚本,但仅适用于 Ubuntu 64 位。我需要知道的是我的 jenkins 镜像的父镜像是否基于 Ubuntu 64 位,这样我就可以毫无问题地使用这个安装脚本。
我docker image inspect <imagename>已经使用过,但它似乎只产生以前图像版本的哈希值。
我正在尝试使用以下命令启动 docker 容器。
docker run -it -p 50070:50070 -p 8088:8088 -p 8080:8080 suhothayan/hadoop-spark-pig-hive:2.9.2 bash
Run Code Online (Sandbox Code Playgroud)
它最终出现了以下错误。
docker:来自守护进程的错误响应:端口不可用:listen tcp 0.0.0.0/50070:bind:尝试以访问权限禁止的方式访问套接字。
据我了解,由于另一个进程使用了端口 50070,因此发生了错误。我试图识别该进程,以便在命令提示符下使用以下命令终止该进程,但它既没有给出输出也没有给出错误。
netstat -ano | findstr :50080
Run Code Online (Sandbox Code Playgroud) 我使用命令“docker run -p 8080/8080 --name my_local_image ....”,但失败,提示无法在本地找到图像“8080/8080:最新”
8080/8080 = 这两个端口到底代表什么?
关于这个主题的唯一文档似乎假设我已经知道清单是什么,它解决的问题,以及它如何适应docker生态系统.阅读文档后,我仍然不确定清单是如何实际工作的.
我的私人GCR包含清单文件 - 并不真正了解它们的用途.docker hub是否也使用清单文件?我可以看到它们包含每层的图层和哈希,但我仍然不清楚docker如何生成/使用它们.
容器清单的目的是什么?
我正在尝试将我的 docker 映像推送到 google 容器映像注册表,但收到一条错误消息,指出我没有执行此操作所需的权限。
我已经尝试过 gcloud auth configure-docker 但它对我不起作用。
我首先使用以下命令构建映像: docker build -t gcr.io/trynew/hello-world-image:v1 。
然后我试图附加一个标签并推送它: docker push gcr.io/trynew/hello-world-image:v1
这是我的输出:
The push refers to repository [gcr.io/trynew/hello-world-image]
e62774cdb1c2: Preparing
0f6265b750f3: Preparing
f82351274ce3: Preparing
31a16430afc8: Preparing
67298499a3ed: Preparing
62d5f39c8fe4: Waiting
9f8566ee5135: Waiting
unauthorized: You don't have the needed permissions to perform this
operation, and you may have invalid credentials.
To authenticate your request, follow the steps in:
https://cloud.google.com/container-registry/docs/advanced-authentication
Run Code Online (Sandbox Code Playgroud) 在过去的两天里,我无法从 GitHub 容器注册表 (GHCR) 中提取任何映像。公共图像和私有图像都会出现此问题。我尝试过使用 CMD 和 Windows 终端,但没有成功。不过,我可以正常从 Docker Hub 拉取镜像。
我使用的命令是这样的:
docker pull ghcr.io/someorg/someimage:sometag
Run Code Online (Sandbox Code Playgroud)
我得到的错误是这样的:
来自守护进程的错误响应:头“https://ghcr.io/v2/someorg/someimage/manifests/sometag”:拒绝:拒绝
其仅表示“拒绝”,但未提供任何原因解释。经过大量搜索,我只找到了 GitHub 上的一个问题,指出这是一个平台问题,已解决。
containers github docker docker-image github-container-registry
我想创建一个Docker Image作为可执行文件,用户将令牌作为环境变量传递给它.可执行文件具有用户应通过docker CMD传递的子命令(通过Env考虑git和身份验证).但是,Docker不会将CMD附加到入口点.我的Dockerfile的相关部分如下所示:
ENTRYPOINT ["/bin/sh", "-c", "/usr/bin/mycmd --token=$MY_TOKEN"]
CMD ["pull", "stuff"]
Run Code Online (Sandbox Code Playgroud)
因此,如果此容器在没有任何CMD覆盖的情况下执行,并且secret作为MY_TOKEN变量,我会期望
mycmd --token=secret pull stuff
Run Code Online (Sandbox Code Playgroud)
被执行.如果用户使用覆盖启动容器,例如
docker run -it -e MY_TOKEN=secret myimage push junk
Run Code Online (Sandbox Code Playgroud)
我期待
mycmd --token=secret push junk
Run Code Online (Sandbox Code Playgroud)
被执行.但是,如上所述,只有mycmd --token=secret执行,CMD才会被忽略 - 无论我是在启动时覆盖它还是在Dockerfile中设置它.
docker ×10
docker-image ×10
dockerfile ×3
containers ×1
docker-cloud ×1
dockerhub ×1
gcp ×1
github ×1
hadoop ×1
java ×1
port ×1
python ×1
spring-boot ×1