小编Bai*_*ily的帖子

通过 FROM 从不同的本地目录导入 Dockerfile

我想创建一个多阶段构建过程,而每个 docker 文件都嵌套在它们自己的本地目录中,并为每个 Docker 文件添加了相应的依赖项。有没有办法从本地的不同目录导入 Docker 文件,而我可以使用 Docker 的FROM命令导入它,以在构建中创建多个阶段?

如果没有,我是否可以ADD将其他暂存的 Docker 文件放入当前的 Docker 文件中,然后FROM在 docker 容器中使用,在添加和使用后将其删除FROM

也许我正在考虑以错误的方式构建多阶段。

或者我可以简单地运行FROM {path/to/docker/locally}?这对我不起作用。

docker docker-compose docker-multi-stage-build

8
推荐指数
3
解决办法
5930
查看次数

将 virtualenv 传输到 docker 镜像

是否可以通过 ADD 命令将虚拟环境数据从本地主机传输到 docker 镜像?

与其在容器内进行 pip 安装,我宁愿用户在本地完成所有这些,然后简单地将虚拟环境转移到容器中。授予所有文件在本地与 docker 容器中的名称相同,并且所有目录都正确嵌套。

如果可以将虚拟环境设置传输到 docker 映像,这将节省几分钟到几小时的时间。也许我在错误的摘要中思考这个问题。

通过传递到容器中的 requirements.txt 执行 pip 安装感觉非常低效,而不是在本地执行所有操作,否则每次启动映像时都必须重新安装未更改的相同依赖项每个图像的构建。

python pip virtualenv docker dockerfile

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

将Docker / var / run / docker数据移动到其他目录

我遵循以下教程来转移并永久移动docker先前在/ usr / bin中保存数据的位置:https : //linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another -ubuntu-debian-linux上的目录

但是在重新启动docker并重建所有容器后,似乎在/ var / run / docker / containerd /中有活动,我之前曾尝试解决该活动。我希望将所有东西docker都保存在/ var / run中的特定目录中,而不是新创建的docker目录中,以替换/ usr / bin / docker

注意:df -h实际上确实证明我在/ usr / bin和/ var / run存在的基本目录中没有足够的空间。我正在尝试将所有docker项目导航到/ opt下的子目录

如何将Docker的所有内容移动到其他目录?

(答案)在文档中找到:https : //docs.docker.com/config/daemon/systemd/#runtime-directory-and-storage-driver

docker docker-compose docker-machine

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

Docker Build 和 Docker Run 的区别

如果我想在我的容器中运行一个 python 脚本RUN,如果我可以在运行脚本的同时在构建时传递一个参数,那么使用该命令有什么意义?

每次运行容器时,我都希望在构建阶段传入x.pyENV变量上运行。

如果我使用 Swarm,并且唯一的目标是运行 x.py 脚本,那么 swarm 只会构建节点,而不是构建并最终运行,因为CMDENTRYPOINT指令仅在运行时发生。

我错过了什么吗?

docker dockerfile docker-compose

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

同时运行两个Kubernetes仪表板

是否可以在两个不同的Shell中本地运行两个Kubernetes仪表板?我想同时查看两个不同的群集,但是,我遇到了仪表板端口的问题。

  1. 在第一个集群上打开仪表板
  2. 打开新的外壳并将上下文切换到第二个群集
  3. 在第二个集群上打开仪表板

我创建了第一个仪表板,如下所示:

$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
Run Code Online (Sandbox Code Playgroud)

我打开了一个新的外壳,并将上下文更改为接收错误的新集群:

$ listen tcp 127.0.0.1:8001: bind: address already in use
Run Code Online (Sandbox Code Playgroud)

我知道为什么会这样,但是我不确定如何缓解这个问题。

此外,当我将第二个群集的仪表板的端口更改为8002时,如果不渲染一个页面,将无法实时查看两个页面。 Internal Server Error (500): square/go-jose: error in cryptographic primitive

我已切换到隐身模式,添加了一个Chrome配置,以从localhost:8001和localhost:8002擦除/忽略浏览器cookie,但是,当我登录时,我在Chrome控制台中收到以下错误:

Possibly unhandled rejection: {  
"data":"MSG_LOGIN_UNAUTHORIZED_ERROR\n",
"status":401,
"config":{  
  "method":"GET",
  "transformRequest":[  
     null
  ],
  "transformResponse":[  
     null
  ],
  "jsonpCallbackParam":"callback",
  "url":"api/v1/rbac/status",
  "headers":{  
     "Accept":"application/json, text/plain, */*"
  }
},
  "statusText":"Unauthorized",
  "xhrStatus":"complete",
  "resource":{ …
Run Code Online (Sandbox Code Playgroud)

kubernetes google-kubernetes-engine kubernetes-pod

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