Linux/Docker/Registry

From Wiki
< Linux‎ | Docker

Example docker-compose.yml

version: '3'

services:
  registry:
    image: registry:2
    ports:
    - "5000:5000"
    environment:
      REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
    volumes:
      - /srv/docker-data/registry:/data
docker-compose up -d

Put example image in registry

docker pull alpine
docker tag alpine vm-docker:5000/my-alpine
docker push vm-docker:5000/my-alpine

On testing client disable secure registry

  • /etc/docker/daemon.json
{
    "insecure-registries":["vm-docker:5000"]
}

Load image from registry

docker pull vm-docker:5000/my-alpine

test:
docker run -it vm-docker:5000/my-alpine sh

Add authentication to registry server

sudo apt install apache2-utils

mkdir /srv/docker-data/registry/auth
cd /srv/docker-data/registry/auth
htpasswd -Bc registry.password testusername
  • docker-compose.yml
version: '3'

services:
  registry:
    image: registry:2
    ports:
    - "5000:5000"
    environment:
      REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/registry.password
    volumes:
      - /srv/docker-data/registry:/data
      - /srv/docker-data/auth:/auth
  • test
docker login vm-docker:5000

Pull-through caching for whole LAN

  • on clients: /etc/docker/daemon.json:
{
  "registry-mirrors": ["http://homeserver:5000"],
  "insecure-registries": [ "homeserver:5000" ]
}