Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在共享docker卷中,某些文件有时丢失_Linux_Docker_Docker Compose - Fatal编程技术网

Linux 在共享docker卷中,某些文件有时丢失

Linux 在共享docker卷中,某些文件有时丢失,linux,docker,docker-compose,Linux,Docker,Docker Compose,环境:mac os(达尔文内核版本19.6.0) docker版本:docker版本20.10.5 我想与两个容器和容器内的文件共享一个卷 由于某些原因,我在docker compose up-d之后看不到一些文件 我认为它与docker overlay系统有关,但不确定,因为它有时工作得很好 docker-compose.yml version: "3.5" services: a: container_name: aaa tty: true

环境:mac os(达尔文内核版本19.6.0)

docker版本:docker版本20.10.5


我想与两个容器和容器内的文件共享一个卷

由于某些原因,我在
docker compose up-d
之后看不到一些文件

我认为它与docker overlay系统有关,但不确定,因为它有时工作得很好

docker-compose.yml

version: "3.5"
services:
  a:
    container_name: aaa
    tty: true
    build:
      context: "."
      dockerfile: "a.Dockerfile"
    networks:
      - my-network
    volumes:
      - test-volume:/usr/src/app

  b:
    container_name: bbb
    tty: true

    build:
      context: "."
      dockerfile: "b.Dockerfile"
    networks:
      - my-network
    volumes:
      - test-volume:/usr/src/app
volumes:
  test-volume:
networks:
  my-network:
    driver: bridge

a、 Dockerfile

FROM python:3.7.10-slim

WORKDIR /usr/src/app/a

RUN mkdir -p /usr/src/app/a/folder

RUN touch a.py

CMD [ "bash" ]
FROM python:3.7.10-slim

WORKDIR /usr/src/app/b

RUN mkdir -p /usr/src/app/b/folder

RUN touch b.py

CMD [ "bash" ]
b、 Dockerfile

FROM python:3.7.10-slim

WORKDIR /usr/src/app/a

RUN mkdir -p /usr/src/app/a/folder

RUN touch a.py

CMD [ "bash" ]
FROM python:3.7.10-slim

WORKDIR /usr/src/app/b

RUN mkdir -p /usr/src/app/b/folder

RUN touch b.py

CMD [ "bash" ]
让我们看看以17开头的“b”docker

docker exec -it 17 ls -al /usr/src/app/b 
total 12
drwxr-xr-x 3 root root 4096 Apr  1 03:33 .
drwxr-xr-x 4 root root 4096 Apr  1 03:33 ..
-rw-r--r-- 1 root root    0 Mar 31 08:52 b.py
drwxr-xr-x 2 root root 4096 Mar 31 08:52 folder
我可以看到b文件,但“a”看不到

docker exec -it 17 ls -al /usr/src/app/a
total 8
drwxr-xr-x 2 root root 4096 Apr  1 03:33 .
drwxr-xr-x 4 root root 4096 Apr  1 03:33 ..
有趣的是,我可以看到“a”文件夹

有时,我可以看到a&b文件夹和文件多次尝试docker上下组合

root@27ae0e62eb33:/usr/src/app/b# ls
b.py  folder
root@27ae0e62eb33:/usr/src/app/b# cd ..
root@27ae0e62eb33:/usr/src/app# ls
a  b
root@27ae0e62eb33:/usr/src/app# cd a
root@27ae0e62eb33:/usr/src/app/a# ls
a.py  folder
root@27ae0e62eb33:/usr/src/app/a# 
如何使用卷与两个容器共享所有文件和文件夹