Docker Registry & Rootless Docker: Difference between revisions
Appearance
Created page with "<syntaxhighlight lang=bash> sudo apt update sudo apt install apache2-utils </syntaxhighlight> Buat password file <syntaxhighlight lang=bash> htpasswd -bnB <NAME> <PASSWORD> > auth/htpasswd </syntaxhighlight>" |
No edit summary |
||
| (6 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
sudo apt install apache2-utils | sudo apt install apache2-utils | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Buat direktori untuk simpen credential & Config lain | |||
<syntaxhighlight lang=bash> | |||
mkdir -p ~/my-registry/{auth,data,certs} | |||
cd ~/my-registry | |||
</syntaxhighlight> | |||
Buat password file | Buat password file | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
htpasswd -bnB <NAME> <PASSWORD> > auth/htpasswd | htpasswd -bnB <NAME> <PASSWORD> > auth/htpasswd | ||
</syntaxhighlight> | |||
Run Registry | |||
<syntaxhighlight lang=bash> | |||
docker run -d \ | |||
--restart=always \ | |||
--name my-registry \ | |||
-v `pwd`/data:/var/lib/registry \ | |||
-v `pwd`/auth:/auth \ | |||
-e "REGISTRY_AUTH=htpasswd" \ | |||
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ | |||
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \ | |||
-p 5000:5000 \ | |||
registry:2 | |||
</syntaxhighlight> | |||
Login | |||
<syntaxhighlight lang=bash> | |||
docker login localhost:5000 | |||
</syntaxhighlight> | |||
Tes | |||
<syntaxhighlight lang=bash> | |||
curl -u <NAME>:<PASSWORD> localhost:5000/v2/_catalog | |||
</syntaxhighlight> | |||
= Rootless Docker = | |||
Tujuan rootless docker di sini agar setiap daemon antar user terisolasi. Misal UserA gak akan bisa liat docker UserB, dan sebaliknya | |||
=== Di Root === | |||
<syntaxhighlight lang=bash> | |||
sudo loginctl enable-linger <user lain> | |||
sudo apt install uidmap | |||
sudo systemctl disable --now docker.service docker.socket | |||
sudo rm /var/run/docker.sock | |||
</syntaxhighlight> | |||
=== Di User Lain === | |||
<syntaxhighlight lang=bash> | |||
dockerd-rootless-setuptool.sh install | |||
export PATH=/usr/bin:$PATH | |||
export DOCKER_HOST=unix:///run/user/1000/docker.sock | |||
systemctl --user start docker | |||
systemctl --user enable docker | |||
docker run -d -p 8080:80 nginx | |||
</syntaxhighlight> | |||
=== Di root lagi === | |||
<syntaxhighlight lang=bash> | |||
sudo systemctl enable --now docker.service docker.socket | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 05:27, 24 May 2025
sudo apt update
sudo apt install apache2-utils
Buat direktori untuk simpen credential & Config lain
mkdir -p ~/my-registry/{auth,data,certs}
cd ~/my-registry
Buat password file
htpasswd -bnB <NAME> <PASSWORD> > auth/htpasswd
Run Registry
docker run -d \
--restart=always \
--name my-registry \
-v `pwd`/data:/var/lib/registry \
-v `pwd`/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
-p 5000:5000 \
registry:2
Login
docker login localhost:5000
Tes
curl -u <NAME>:<PASSWORD> localhost:5000/v2/_catalog
Rootless Docker
Tujuan rootless docker di sini agar setiap daemon antar user terisolasi. Misal UserA gak akan bisa liat docker UserB, dan sebaliknya
Di Root
sudo loginctl enable-linger <user lain>
sudo apt install uidmap
sudo systemctl disable --now docker.service docker.socket
sudo rm /var/run/docker.sock
Di User Lain
dockerd-rootless-setuptool.sh install
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock
systemctl --user start docker
systemctl --user enable docker
docker run -d -p 8080:80 nginx
Di root lagi
sudo systemctl enable --now docker.service docker.socket