Registry配置基于YAML文件。虽然具有开箱即用的默认值,但是在将系统投入生产之前详尽地查看它。
在从官方镜像运行Registry的典型配置中,可以通过-e
参数传递到docker run
或者在Dockerfile中使用ENV指令来传递环境变量。
要覆盖配置选项,可以创建名为REGISTRY_variable
的环境变量,其中variable为需要设置的名字,下划线表示缩进级别,如下:
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/somewhere
storage:
filesystem:
rootdirectory: /var/lib/registry
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY环境变量将会使用/somewhere
来覆盖/var/lib/registry
。
注意,以上方式用于修改单个环境变量的值
修改单个环境变量遇到问题,或者需要修改整个配置文件的时候,通过将YAML配置文件作为容器的卷的方式修改整个配置文件。 通常,从头开始创建一个新的配置文件,命名config.yml,然后在docker run命令中指定它:
$ docker run -d -p 5000:5000 --restart=always --name registry \
-v `pwd`/config.yml:/etc/docker/registry/config.yml \
registry:2
示例YAML文件(config.yaml)如下:
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
auth:
htpasswd:
realm: basic-realm
path: /etc/registry
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
完整的配置文件参考官方文档:https://docs.docker.com/registry/configuration/