Registry
  • Public registry, docker hub
  • Private registry, ECR (AWS), ACR (Azure), GCR (Google)
  • Local registry
  • Image Naming
    1. registryDomain/imageName:Tag
    2.  
    3. Docker Hub
    4. docker.io/library/imageName:Tag
    5. or
    6. imageName:Tag
    Login Registry
    1. docker login # login Docker Hub
    2. docker login [domainName] # login a private registry
    Private Registry
  • ECR
  • Local Registry
    1. # start a local registry
    2. docker run -d -p 5000:5000 --restart=always --name registry registry:2
    3.  
    4. # push image
    5. docker tag redis localhost:5000/redis
    6. docker push localhost:5000/redis
    7.  
    8. # pull image
    9. docker pull localhost:5000/redis
    10.  
    11. # list images on local registry
    12. http://localhost:5000/v2/_catalog
    Multiple Registries
  • Compose file contains images from multiple registries
    1. version: "3.9" # optional since v1.27.0
    2. services:
    3. mysqlserver:
    4. image: [privateRegistry]/mysql:8 # pull from a private registry
    5. volumes:
    6. - type: volume
    7. source: sandbox-home
    8. target: /var/lib/mysql
    9. environment:
    10. - MYSQL_ROOT_PASSWORD=root
    11. phpmyadmin:
    12. image: phpmyadmin/phpmyadmin # pull from Docker Hub
    13. ports:
    14. - 8080:80
    15. environment:
    16. - PMA_HOST=mysqlserver
    17. volumes:
    18. sandbox-home:
  • Login registries
    1. # ~/.docker/config.json
    2. {
    3. "auths": {
    4. "https://index.docker.io/v1/": {},
    5. "[privateRegistry]": {}
    6. },
    7. "credsStore": "desktop"
    8. }
    Reference
  • Using a Private Docker Registry
  • Deploy a Registry Server