【问题标题】:Docker can't see some files?Docker 看不到一些文件?
【发布时间】:2019-08-03 21:27:29
【问题描述】:

我想使用这个 docker-compose.yaml 文件在我的服务器上创建一个 docker 注册表:

version: '3'
services:
  registry:
    restart: always
    image: registry:2
    ports:
      - 5000:5000

    volumes:
      - /home/ubuntu/registry/volumes/data:/var/lib/registry
      - /home/ubuntu/registry/volumes/certs:/certs
      - /home/ubuntu/registry/volumes/auth:/auth
    environment:
      REGISTRY_HTTP_TLS_CERTIFICATE: /home/ubuntu/registry/certs/domain.crt
      REGISTRY_HTTP_TLS_KEY: /home/ubuntu/registry/certs/domain.key
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_PATH: /home/ubuntu/registry/auth/htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm


我在跑步 ''' 码头工人组成 ''' 但是会出现这个错误。

registry_1  | time="2019-08-03T21:17:38.938127498Z" level=fatal msg="open /home/ubuntu/registry/certs/domain.crt: no such file or directory"

我确定这些文件存在,你知道吗?

【问题讨论】:

  • 它们存在于主机上,而不是容器中。
  • 我知道,但我认为这个容器应该从主机读取它们,对吧?
  • 如果您docker-compose run registry sh 并四处寻找,您应该会看到目录/certs/auth 包含来自主机的内容,但它们不会是主机特定的路径名​​。您应该更改环境变量以匹配容器内的路径。

标签: docker docker-compose docker-registry


【解决方案1】:
volumes:
  - /home/ubuntu/registry/volumes/certs:/certs

在这里,您是说使用主机路径/home/ubuntu/registry/volumes/certs 并使其在容器内以/certs 的形式可用。因此,也许您想更改容器端的路径以匹配主机路径,或者更改环境变量以反映实际的容器路径。

另请注意,您在一个位置使用了/home/ubuntu/registry/volumes/certs,在另一个位置使用了/home/ubuntu/registry/certs(没有“卷”),我认为这可能也需要修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多