Saturday, December 16, 2017

Setup Docker Registry menggunakan Nexus OSS 3.x



Halo sobat Nostra,
Pada kali ini saya akan berbagi cara membuat private docker registry menggunakan nexus oss 3.x. Docker Hub adalah original registry untuk semua images kontainer docker yang dapat bersifat publik atau private. Ada juga registry publik lainnya seperti Google Container Registry dan registry lainnnya. Kali ini kita akan membuat docker private registry untuk menyimpan image-image kita di server kita dengan menggunakan Nexus repository manager 3.6.2 yang sudah support docker repo. Keuntungannya ada karena image berada di jaringan lokal kita dapat mengurangi cost dan bandwith, lebih aman, mudah memanage user authentication, dan yang paling penting free.

Pada tutorial kali ini saya menggunakan Centos 7. Masuk ke server yang akan di install Nexus oss sebagai root.
Pastikan selinux kita sudah disabled 

nano /etc/sysconfi/selinux
SELINUX=disabled


Install Java Runtime Environment
Cek versi java dengan command
$ java -version

openjdk version "1.8.0_151"

OpenJDK Runtime Environment (build 1.8.0_151-b12)

OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Jika server belum terinstall dapat mengikuti langkah di bawah ini
yum install java-1.8.0-openjdk.i686

Download nexus repository manager versi 3.6.2 (latest) dan extract file tersebut
cd /opt
wget http://download.sonatype.com/nexus/3/nexus-3.6.2-01-unix.tar.gz
tar xvf nexus-3.6.2-01-unix.tar.gz
mv nexus-3.6.2-01 nexus


Set konfigurasi di /opt/nexus/bin/nexus.rc sehingga nexus dapat run sebagai user root

nano /opt/nexus/bin/nexus.rc

run_as_user="root"


Untuk run nexus menggunakan systemd sebagai service kita akan membuat file nexus.service di folder /etc/systemd/system/nexus=
nano /etc/systemd/system/nexus.service

[Unit]

Description=nexus service
After=network.target

[Service]
Type=forking
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=root
Restart=on-abort

[Install]
WantedBy=multi-user.target

Setelah Nexus start kita dapat mengakses melalui browser http://ipserver:8081/
untuk login sebagai admin dapat memasukkan username:admin dan password:admin123


Tambahkan  role untuk docker dengan cara memilih menu Roles lalu pilih create role. Isi sesuai dengan gambar dibawah ini. pada privileges ketik docker pada bagian filter lalu blok dan klik icon > sehingga privileges yg disebelah kiri pindah ke sebelah kanan.



Selanjutnya untuk menambah user pilih menu Users, create local user. isi sesuai dengan gambar di bawah ini.

Pilih icon pengaturan lalu ke Repositories dan create repository. Kemudian isi field sesuai dengan gambar di bawah ini. Kita akan menggunakan port 8080 untuk mengakses repo docker yg nantinya kita akan melakukan pull atau push image docker.

Kita harus menginstall terlebih dahulu menginstall service docker di sever kita.
Sekarang kita akan mencoba untuk melakukan push image ke repo docker. Pertama kita harus terlebih dahulu login ke docker nexus.

docker login localhost:8080

Pull image hello world dari docker hub dan kemudian kita push ke docker private kita.
docker images
docker pull tutum/hello-world
docker tag tutum/hello-world localhost:8080/tutum/hello-world

Mengecek apakah sudah masuk image yang kita push.
docker search localhost:8080/tutum/hello-world

Untuk pull image dapat menggunakan  perintah.
docker login localhost:8080

Melihat image yg ada di local

docker images



Sekian tutorial kali ini semoga bermanfaat. Terima kasih... :)






No comments:

Post a Comment