无法使用 docker-compose 挂载卷

Rai*_*616 5 docker docker-compose

我正在尝试使用 docker-compose 运行一个已安装本地卷的 docker 容器。由于未能使其正常工作,我已将 docker-compose 缩减为最基本的版本:

version: '2'

services:
  php:
    image: php:5.6-apache
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
Run Code Online (Sandbox Code Playgroud)

执行此操作后,挂载将出现在 dockerspect 中:

"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/clark/Projects/apis/contracts",
                "Destination": "/var/www/html",
                "Mode": "rw",
                "RW": true,
                "Propagation": ""
            }
        ],
Run Code Online (Sandbox Code Playgroud)

但是容器上的 /var/www/html 目录是空的。

我已经尝试了所有我能想到的组合。绝对路径、相对路径、${pwd}、命名卷、安装到存在的目录、安装到不存在的目录......这让我发疯。

请有人告诉我我做错了什么???

pap*_*pey 3

在这里工作,唯一的区别是版本 3 docker-compose 文件。

mkdir /tmp/compose-test && cd /tmp/compose-test
touch iam_a_file
Run Code Online (Sandbox Code Playgroud)

Docker 撰写文件:

---
version: '3'

services:
  test:
    image: busybox
    command: ls -la /var/www/html
    volumes:
      - .:/var/www/html
Run Code Online (Sandbox Code Playgroud)

确保配置没问题:

docker-compose config
Run Code Online (Sandbox Code Playgroud)

把所有的东西都顶起来

docker-compose up
Creating composetest_test_1
Attaching to composetest_test_1
test_1  | total 8
test_1  | drwxr-xr-x    2 1000     users           80 Apr 26 16:47 .
test_1  | drwxr-xr-x    1 www-data www-data      4096 Apr 26 16:49 ..
test_1  | -rw-r--r--    1 1000     users          126 Apr 26 16:48 docker-compose.yml
test_1  | -rw-r--r--    1 1000     users            0 Apr 26 16:46 iam_a_file
Run Code Online (Sandbox Code Playgroud)

检查显示,当您提供相对路径时,docker 将其更改为完整路径。

编辑:我也尝试过 php:5.6-apache,它有效。

  • Docker 运行创建一个新容器,并且您不提供任何 -v 标志。尝试 docker exec 命令。 (3认同)