我想在Dockerfile中像初始化卷一样添加挂载点,有什么方法实现吗?
docker-compose.yml
文件来为你挂载一个目录看起来像这样:version: '3.1'
services:
mycontainer:
image: myimage
build: .
volumes:
- './path/on/docker/host:/path/inside/container'
build: .
是可选的,如果您通过其他方式构建镜像,则不需要它,但有时将所有操作都放在一起很方便。
使用 docker-compose up -d
命令运行它。
简单回答是不可以。
Docker镜像的基本设计原则是可移植性。绑定挂载是主机特定的,因为挂载的文件夹在主机上定义。因此,这与Docker镜像的可移植性要求相矛盾。
FROM ubuntu:22.04
RUN --mount=type=bind,source=.,target=/test ls -al /test
docker buildx build . --progress plain --no-cache
将输出这个
#6 0.305 drwxr-xr-x 2 root root 4096 Oct 1 16:33 .
#6 0.305 drwxr-xr-x 1 root root 4096 Oct 1 16:33 ..
#6 0.305 -rw-r--r-- 1 root root 76 Oct 1 16:33 Dockerfile
-d
参数是必需的,以便在容器中启动分离模式...否则它只会锁定您的终端... - Siddharth Seth