代码之家  ›  专栏  ›  技术社区  ›  RoToR

docker compose将装载卷文件传播绑定到主机

  •  0
  • RoToR  · 技术社区  · 4 年前

    我读了很多 this tutorial 当你创造一个 docker-compose.yml 如果在运行时未在主机上创建文件夹,请创建文件并绑定装载卷 docker-compose up 该文件夹将自动创建并填充容器文件夹的内容。

    以下是报价:

    然后你应该卷绑定两个文件夹/etc/nginx是存储所有配置文件的地方,/etc/ssl/private是存储ssl证书的地方。第一次启动容器时,主机上不存在配置文件夹,这一点非常重要。当您通过docker compose启动容器时,它将自动创建文件夹并用容器的内容填充它。如果您在主机上创建了一个空的配置文件夹,它将挂载该文件夹,容器中的文件夹将为空。

    但这似乎对我不起作用。

    • 我的docker不是以root用户身份运行的。我在我的机器上创建了docker组,并在其中添加了我的用户,因此我不需要运行 sudo docker <command>
    • 我运行一台ubuntu服务器
    • 无论我是否尝试以只读方式绑定和装载卷
    • 跑步时 docker整理 它创建文件夹,但它们归root用户所有
    • 根用户拥有的已创建文件夹为空

    这是我的 docker撰写。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 这是一个很难解决的问题(从容器中复制文件,然后绑定挂载所有内容),但我忍不住认为还有另一种方法。或者我正在学习的教程已经过时或错误了?

    0 回复  |  直到 3 年前
    推荐文章