filmov
tv
How to Setup Private Docker Registry like DockerHub?
Показать описание
See complete series on Docker here:
In this video, you will learn to Setup a Private Docker registry on your server.
We can set up it in three ways
⌨️ (05:00) Insecure
⌨️ (23:50) Secure
⌨️ (41:53) Authentication Based
What is the Private Docker registry?
Docker registry is a private repository just like docker-hub but it lives in your data center so that images in the registry can be accessed by only your company.
We need to set up the registry in your local to push-pull images.
We can use the same commands which we used for docker hub, the difference is you need to add your repo address to login & push
example:
docker login (repo addr)
docker tag (image id/name) repoaddr/loginid/reponame:tag
docker push repoaddr/loginid/reponame:tag
#dockerregistry #dockertrustedregistry #dtr #container #dockerimages
---------------------------------------------
Commands for setup:
1. Insecure Registry
$ docker run -itd -p 5000:5000 \
--name insecure_registry \
-v registry_storage:/var/lib/registry \
registry
$ docker image tag (image) 127.0.0.1:5000/(image)
$ docker image push 127.0.0.1:5000/(image)
# Allows all 127.0.0.0/8 subnet
$ifconfig
# get server ip addr
$docker tag (image) (server ip addr):5000/(image)
$docker push (server ip addr):5000/(image)
(push failed)
{
"insecure-registries": ["(server ip):5000"]
}
$sudo service docker restart
$docker start insecure_registry
$docker push (server ip addr):5000/(image)
# success
======================
2. Secure Registry
$cd /etc/docker
$docker stop insecure_registry
$sudo service docker restart
# create certificates
$cd ~
$mkdir certs
$sudo openssl req \
$cd /etc/docker
$mkdir certs.d
$cd certs.d
$ cd ~
$sudo service docker restart
$docker run -d \
--name secure_registry \
-v registry_storage:/var/lib/registry \
-v "$(pwd)"/certs:/certs \
-p 5000:5000 \
registry
$docker push (server ip):5000/(image)
# (failure)
$sudo vi /etc/hosts
# success
======================
3.Authentication Based
$docker stop secure_registry
$mkdir auth
$docker container run --entrypoint htpasswd registry:2.7.0 -bnB suraj password (greater than symbol)auth/htpasswd
# entrypoint is htpasswd, -b means run in bash mode,
# n means output must get displayed,B is bcrypt, username:suraj, password: password
$ docker run -d -p 5000:5000 \
--name auth_registry \
-v registry_storage:/var/lib/registry \
-v "$(pwd)"/auth:/auth \
-v "$(pwd)"/certs:/certs \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry
(no basic auth credential)
login: suraj
password:
(success)
=========================
Support Us
Like, Share, Subscribe ;)
In this video, you will learn to Setup a Private Docker registry on your server.
We can set up it in three ways
⌨️ (05:00) Insecure
⌨️ (23:50) Secure
⌨️ (41:53) Authentication Based
What is the Private Docker registry?
Docker registry is a private repository just like docker-hub but it lives in your data center so that images in the registry can be accessed by only your company.
We need to set up the registry in your local to push-pull images.
We can use the same commands which we used for docker hub, the difference is you need to add your repo address to login & push
example:
docker login (repo addr)
docker tag (image id/name) repoaddr/loginid/reponame:tag
docker push repoaddr/loginid/reponame:tag
#dockerregistry #dockertrustedregistry #dtr #container #dockerimages
---------------------------------------------
Commands for setup:
1. Insecure Registry
$ docker run -itd -p 5000:5000 \
--name insecure_registry \
-v registry_storage:/var/lib/registry \
registry
$ docker image tag (image) 127.0.0.1:5000/(image)
$ docker image push 127.0.0.1:5000/(image)
# Allows all 127.0.0.0/8 subnet
$ifconfig
# get server ip addr
$docker tag (image) (server ip addr):5000/(image)
$docker push (server ip addr):5000/(image)
(push failed)
{
"insecure-registries": ["(server ip):5000"]
}
$sudo service docker restart
$docker start insecure_registry
$docker push (server ip addr):5000/(image)
# success
======================
2. Secure Registry
$cd /etc/docker
$docker stop insecure_registry
$sudo service docker restart
# create certificates
$cd ~
$mkdir certs
$sudo openssl req \
$cd /etc/docker
$mkdir certs.d
$cd certs.d
$ cd ~
$sudo service docker restart
$docker run -d \
--name secure_registry \
-v registry_storage:/var/lib/registry \
-v "$(pwd)"/certs:/certs \
-p 5000:5000 \
registry
$docker push (server ip):5000/(image)
# (failure)
$sudo vi /etc/hosts
# success
======================
3.Authentication Based
$docker stop secure_registry
$mkdir auth
$docker container run --entrypoint htpasswd registry:2.7.0 -bnB suraj password (greater than symbol)auth/htpasswd
# entrypoint is htpasswd, -b means run in bash mode,
# n means output must get displayed,B is bcrypt, username:suraj, password: password
$ docker run -d -p 5000:5000 \
--name auth_registry \
-v registry_storage:/var/lib/registry \
-v "$(pwd)"/auth:/auth \
-v "$(pwd)"/certs:/certs \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry
(no basic auth credential)
login: suraj
password:
(success)
=========================
Support Us
Like, Share, Subscribe ;)