commit
						a5b21fa8f0
					
				|  | @ -22,7 +22,7 @@ storage: | |||
|     cache: | ||||
|         blobdescriptor: redis | ||||
|     filesystem: | ||||
|         rootdirectory: /tmp/registry-dev | ||||
|         rootdirectory: /var/lib/registry | ||||
|     maintenance: | ||||
|         uploadpurging: | ||||
|             enabled: false | ||||
|  |  | |||
|  | @ -12,7 +12,17 @@ If a Go development environment is setup, one can use `go get` to install the | |||
| go get github.com/docker/distribution/cmd/registry | ||||
| ``` | ||||
| 
 | ||||
| The above will install the source repository into the `GOPATH`. The `registry` | ||||
| The above will install the source repository into the `GOPATH`. | ||||
| 
 | ||||
| Now create the directory for the registry data (this might require you to set permissions properly) | ||||
| 
 | ||||
| ```sh | ||||
| mkdir -p /var/lib/registry | ||||
| ``` | ||||
| 
 | ||||
| ... or alternatively `export REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/somewhere` if you want to store data into another location. | ||||
| 
 | ||||
| The `registry` | ||||
| binary can then be run with the following: | ||||
| 
 | ||||
| ``` | ||||
|  |  | |||
|  | @ -21,16 +21,16 @@ configure the `rootdirectory` of the `filesystem` storage backend: | |||
| ``` | ||||
| storage: | ||||
| 	filesystem: | ||||
| 		rootdirectory: /tmp/registry-dev | ||||
| 		rootdirectory: /var/lib/registry | ||||
| ``` | ||||
| 
 | ||||
| To override this value, set an environment variable like this: | ||||
| 
 | ||||
| ``` | ||||
| REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/tmp/registry/test | ||||
| REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/somewhere | ||||
| ``` | ||||
| 
 | ||||
| This variable overrides the `/tmp/registry-dev` value to the `/tmp/registry/test` | ||||
| This variable overrides the `/var/lib/registry` value to the `/somewhere` | ||||
| directory. | ||||
| 
 | ||||
| >**Note**: If an environment variable changes a map value into a string, such | ||||
|  | @ -72,7 +72,7 @@ log: | |||
| loglevel: debug # deprecated: use "log" | ||||
| storage: | ||||
| 	filesystem: | ||||
| 		rootdirectory: /tmp/registry-dev | ||||
| 		rootdirectory: /var/lib/registry | ||||
| 	azure: | ||||
| 		accountname: accountname | ||||
| 		accountkey: base64encodedaccountkey | ||||
|  | @ -284,7 +284,7 @@ Permitted values are `error`, `warn`, `info` and `debug`. The default is | |||
| ```yaml | ||||
| storage: | ||||
| 	filesystem: | ||||
| 		rootdirectory: /tmp/registry | ||||
| 		rootdirectory: /var/lib/registry | ||||
| 	azure: | ||||
| 		accountname: accountname | ||||
| 		accountkey: base64encodedaccountkey | ||||
|  | @ -1342,7 +1342,7 @@ log: | |||
| 	level: debug | ||||
| storage: | ||||
|     filesystem: | ||||
|         rootdirectory: /tmp/registry-dev | ||||
|         rootdirectory: /var/lib/registry | ||||
| http: | ||||
|     addr: localhost:5000 | ||||
|     secret: asecretforlocaldevelopment | ||||
|  | @ -1352,7 +1352,7 @@ http: | |||
| 
 | ||||
| The above configures the registry instance to run on port `5000`, binding to | ||||
| `localhost`, with the `debug` server enabled. Registry data storage is in the | ||||
| `/tmp/registry-dev` directory. Logging is in `debug` mode, which is the most | ||||
| `/var/lib/registry` directory. Logging is in `debug` mode, which is the most | ||||
| verbose. | ||||
| 
 | ||||
| A similar simple configuration is available at | ||||
|  |  | |||
|  | @ -8,16 +8,11 @@ IGNORES--> | |||
| 
 | ||||
| You obviously need to [install Docker](https://docs.docker.com/installation/) (remember you need **Docker version 1.6.0 or newer**). | ||||
| 
 | ||||
| ## Getting started in 2 lines | ||||
| 
 | ||||
| Create a folder for your registry data: | ||||
| 
 | ||||
|      $ mkdir registry-data | ||||
| ## Getting started | ||||
| 
 | ||||
| Start your registry: | ||||
| 
 | ||||
|      $ docker run -d -p 5000:5000 \ | ||||
|      		-v `pwd`/registry-data:/tmp/registry-dev \ | ||||
|      		--restart=always --name registry registry:2 | ||||
| 
 | ||||
| That's it. | ||||
|  | @ -31,6 +26,20 @@ Then pull it back: | |||
| 
 | ||||
|     $ docker pull localhost:5000/batman/ubuntu | ||||
| 
 | ||||
| ## Where is my data? | ||||
| 
 | ||||
| By default, your registry stores its data on the local filesystem, inside the container. | ||||
| 
 | ||||
| In a production environment, it's highly recommended to use [another storage backend](https://github.com/docker/distribution/blob/master/docs/storagedrivers.md), by [configuring it](https://github.com/docker/distribution/blob/master/docs/configuration.md#storage). | ||||
| 
 | ||||
| If you want to stick with the local posix filesystem, you should store your data outside of the container. | ||||
| 
 | ||||
| This is achieved by mounting a volume into the container: | ||||
| 
 | ||||
|      $ docker run -d -p 5000:5000 \ | ||||
|         -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry \ | ||||
|         -v /myregistrydata:/var/lib/registry \ | ||||
|         --restart=always --name registry registry:2 | ||||
| 
 | ||||
| ## Making your Registry available | ||||
| 
 | ||||
|  | @ -41,7 +50,12 @@ Let assume your registry is accessible via the domain name `myregistrydomain.com | |||
| If you try to `docker pull myregistrydomain.com:5000/batman/ubuntu`, you will see the following error message: | ||||
| 
 | ||||
| ``` | ||||
| FATA[0000] Error response from daemon: v1 ping attempt failed with error: Get https://myregistrydomain.com:5000/v1/_ping: tls: oversized record received with length 20527. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry myregistrydomain.com:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt | ||||
| FATA[0000] Error response from daemon: v1 ping attempt failed with error: | ||||
| Get https://myregistrydomain.com:5000/v1/_ping: tls: oversized record received with length 20527.  | ||||
| If this private registry supports only HTTP or HTTPS with an unknown CA certificate,please add  | ||||
| `--insecure-registry myregistrydomain.com:5000` to the daemon's arguments. | ||||
| In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; | ||||
| simply place the CA certificate at /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt | ||||
| ``` | ||||
| 
 | ||||
| If trying to reach a non `localhost` registry, Docker requires that you secure it using https, or make it explicit that you want to run an insecure registry. | ||||
|  | @ -62,7 +76,6 @@ docker stop registry && docker rm registry | |||
| 
 | ||||
| # Start your registry with TLS enabled | ||||
| docker run -d -p 5000:5000 \ | ||||
| 	-v `pwd`/registry-data:/tmp/registry-dev \ | ||||
| 	-v `pwd`/certs:/certs \ | ||||
| 	-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ | ||||
| 	-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ | ||||
|  | @ -134,9 +147,9 @@ registry: | |||
|   environment: | ||||
|     REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt | ||||
|     REGISTRY_HTTP_TLS_KEY: /certs/domain.key | ||||
|     REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data | ||||
|     REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /var/lib/registry | ||||
|   volumes: | ||||
|     - /path/registry-data:/data | ||||
|     - /path/registry-data:/var/lib/registry | ||||
|     - /path/certs:/certs | ||||
| ``` | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,4 +10,4 @@ An implementation of the `storagedriver.StorageDriver` interface which uses the | |||
| 
 | ||||
| ## Parameters | ||||
| 
 | ||||
| `rootdirectory`: (optional) The root directory tree in which all registry files will be stored. Defaults to `/tmp/registry/storage`. | ||||
| `rootdirectory`: (optional) The root directory tree in which all registry files will be stored. Defaults to `/var/lib/registry`. | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ import ( | |||
| ) | ||||
| 
 | ||||
| const driverName = "filesystem" | ||||
| const defaultRootDirectory = "/tmp/registry/storage" | ||||
| const defaultRootDirectory = "/var/lib/registry" | ||||
| 
 | ||||
| func init() { | ||||
| 	factory.Register(driverName, &filesystemDriverFactory{}) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue