我使用 docker run -it seafileltd/seafile-mc:7.1.4 /bin/bash
构建了一个 seafile 容器,并且运行良好。但是当我使用以下 docker-compose.yaml
运行它时,情况就有些不同了。
version: '2.0'
services:
seafile:
image: seafileltd/seafile-mc:7.1.4
container_name: seafile
ports:
- "80:80"
docker-compose 多几个目录如下
docker-compose:
[root@felix mmm]# docker exec -it seafile bash
root@6ffb38b7058d:/opt/seafile# ls /shared/
logs nginx seafile
docker 运行:
[root@felix mmm]# docker run -it seafileltd/seafile-mc:7.1.4 /bin/bash
root@b919cfbb1224:/opt/seafile# ls /shared
ls: cannot access '/shared': No such file or directory
答案 0 :(得分:0)
当您在示例中运行 docker run
时,您没有运行容器的默认命令,而是运行 bin/bash。
默认情况下,seafile-mc 容器在容器启动时运行 /scripts/start.py
,并且该进程将文件写入 /opt
文件夹。
当您运行 docker run -it seafileltd/seafile-mc:7.1.4 /bin/bash
时,您运行的是 /bin/bash
而不是 /scripts/start.py
。因此该进程不会运行,也不会写入文件以供选择。
我假设您运行了 docker-compose up
或 docker-compose run seafile
,它们运行了 /scripts/start.py
,然后写入了 opt 文件夹。
如果您想要一个与您运行的 docker 命令等效的 docker-compose 命令,您可以运行 docker-compose run seafile /bin/bash
并且您会得到与您的 docker run 命令相同的结果。