我想使用mount flag
over 将主机上的目录挂载到容器中volume
但是我得到了`这只是在使用mount标志而不是使用卷时才会遇到
*Command:*
docker run -d -it --name devtest --mount type=bind,source="$(pwd)",target=/home/ httpd
Run Code Online (Sandbox Code Playgroud)
错误 未知标志: - mount
Server Version: 1.13.1
Storage Driver: aufs
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: "deleted"
Profile: default
Kernel Version: 4.10.0-42-generic
Operating System: Ubuntu 17.04
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.715 GiB
Name: "deleted"
ID: "deleted" …
Run Code Online (Sandbox Code Playgroud) 我希望尽快将自己的pip install
说明放入docker build
s中。
我读过许多 文章,解释了requirements.txt
在应用程序其余部分之前添加您的内容如何在您requirements.txt
未更改的情况下帮助您利用Docker自己的图像缓存。但是,如果依赖项确实发生了变化,甚至没有任何变化,这根本没有帮助。
下一步将是是否可以使用一致的pip缓存目录。默认情况下,pip
它将在~/.cache/pip
(在Linux上)缓存已下载的软件包,因此,如果您要安装的模块的版本与系统上任何地方之前安装的模块相同,则无需再次下载它,而是而是简单地使用缓存的版本。如果我们可以将共享的缓存目录用于Docker构建,则可以大大加快依赖项的安装速度。
但是,似乎没有任何简单的方法可以在运行时挂载卷docker build
。构建环境似乎基本上是不可渗透的。我发现有一篇文章提出了一种rsync
在主机上运行服务器的奇妙但复杂的方法,然后在内部进行破解以获取主机IP,从而从主机中同步pip缓存。但是我不喜欢在Jenkins中运行rsync服务器的想法(最好的时间,这不是最安全的平台)。
有谁知道是否还有其他方法可以更简单地实现共享缓存量?