我在this tutorial上读到过,当您创建docker-compose.yml
文件并绑定装入卷时,如果未在主机上创建文件夹,则在运行docker-compose up
时文件夹将自动创建,并使用容器文件夹的内容填充。
这里是引号:
然后,您应该将两个文件夹批量绑定。 / etc / nginx是存储所有配置文件的位置,/ etc / ssl / private是存储SSL证书的位置。首次启动容器时,主机上不存在配置文件夹,这一点非常重要。通过docker-compose启动容器时,它将自动创建文件夹并使用容器的内容填充该文件夹。如果您在主机上创建了一个空的config文件夹,它将安装该文件夹,并且容器内的文件夹将为空。
但这似乎不适用于我。 这是我检查过的几件事。
- 我的泊坞窗未以root用户身份运行。我在机器上创建了docker组并在其中添加了用户,因此不需要运行
sudo docker <command>
- 我运行的是18 LTS的ubuntu服务器
- 我是否尝试将卷绑定为只读都没有关系
- 运行
docker-compose up
时会创建文件夹,但这些文件夹归root用户所有 - root用户拥有的创建的文件夹为空
这是我的docker-compose.yml
version: '3'
services:
nginx:
image: nginx
container_name: reverse_nginx
ports:
- "80:80"
- "443:443"
volumes:
- "./html:/usr/share/nginx/html"
- "./conf:/etc/nginx"
- "./ssl:/etc/ssl/private"
restart: unless-stopped
这是创建的内容:
icare@icare:~/nginx
$ ls -lR
.:
total 16
drwxr-xr-x 2 root root 4096 Mar 20 15:46 conf
-rw-r--r-- 1 icare icare 269 Mar 20 15:27 docker-compose.yml
drwxr-xr-x 2 root root 4096 Mar 20 15:46 html
drwxr-xr-x 2 root root 4096 Mar 20 15:46 ssl
./conf:
total 0
./html:
total 0
./ssl:
total 0
我无法在线找到解决方案,似乎一个人asked on github并已通过困难的方式解决了(从容器中复制文件,然后将所有内容绑定安装),但我不禁要思考那是另一种方式。还是我正在关注的教程过时或错误?