gpt4 book ai didi

docker - 无法在Docker上映射卷

转载 作者:行者123 更新时间:2023-12-02 20:43:19 26 4
gpt4 key购买 nike

我正在学习docker,试图在我的项目中进行设置。

我无法将本地目录映射到Docker的容器。
如何在Docker容器上获取​​本地目录作为卷?

参见下面的Dockerfile:

FROM centos:7

RUN pwd
RUN ls

就是这样。
我的docker-compose.yml包含:
version: '3'
services:
first_demo:
container_name: first_container
image: first_image
build:
context: .
dockerfile: Dockerfile
volumes:
- ./files:/data/files
restart: always

我的目录包含2个文件和1个文件夹
docker-compose.yml (f)  Dockerfile (f)  files (d)

当我运行 docker-compose -f ./docker-compose.yml build时,我得到以下输出:
Step 1/3 : FROM centos:7
---> 67fa590cfc1c
Step 2/3 : RUN pwd
---> Running in 0a89ef62ce9f
/
Removing intermediate container 0a89ef62ce9f
---> 48acbead537d
Step 3/3 : RUN ls
---> Running in c18f7f08b067
anaconda-post.log
bin
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
Removing intermediate container c18f7f08b067

然后,当我使用 docker run -d first_image tail -f /dev/null;运行容器并ssh进入容器时,我仍然看不到映射的卷“/ data / files”
drwxr-xr-x   2 root root  4096 Apr 11  2018 srv
drwxr-xr-x 2 root root 4096 Apr 11 2018 opt
drwxr-xr-x 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x 2 root root 4096 Apr 11 2018 media
drwxr-xr-x 2 root root 4096 Apr 11 2018 home
drwxr-xr-x 13 root root 4096 Aug 1 01:09 usr
lrwxrwxrwx 1 root root 8 Aug 1 01:09 sbin -> usr/sbin
lrwxrwxrwx 1 root root 9 Aug 1 01:09 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 7 Aug 1 01:09 lib -> usr/lib
lrwxrwxrwx 1 root root 7 Aug 1 01:09 bin -> usr/bin
drwxr-xr-x 18 root root 4096 Aug 1 01:09 var
drwxrwxrwt 7 root root 4096 Aug 1 01:10 tmp
drwxr-xr-x 11 root root 4096 Aug 1 01:10 run
dr-xr-x--- 2 root root 4096 Aug 1 01:10 root
-rw-r--r-- 1 root root 12090 Aug 1 01:10 anaconda-post.log
dr-xr-xr-x 13 root root 0 Jan 7 13:03 sys
drwxr-xr-x 1 root root 4096 Jan 7 13:39 etc
dr-xr-xr-x 467 root root 0 Jan 7 13:39 proc
drwxr-xr-x 5 root root 340 Jan 7 13:39 dev

最佳答案

您正在使用docker run而不是docker-compose启动Docker容器。卷在运行时挂载,并且在执行docker run时未提供卷配置。
您可以运行docker-compose upup -d在后台运行它

您还可以通过docker run命令--mount source=myvol2,target=/app挂载卷
供引用:https://docs.docker.com/storage/volumes/

如果您在文件名docker-compose.yml中具有docker compose配置,则无需使用-f进行指定。 Docker-compose将默认执行它。当yml文件被命名为其他名称时,您将使用-f

关于docker - 无法在Docker上映射卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59629591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com