GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Registri Docker Pribadi di Ubuntu 20.04

Untuk pengembangan CI/CD yang lancar menggunakan platform buruh pelabuhan, pertimbangkan untuk menggunakan server registri buruh pelabuhan yang dihosting sendiri. Registri Docker adalah repositori tempat Anda dapat menyimpan gambar buruh pelabuhan Anda dan menariknya untuk menjalankan aplikasi di server. Untuk pengiriman yang lebih cepat serta infrastruktur yang aman, disarankan untuk menyiapkan registri pribadi buruh pelabuhan Anda sendiri untuk menyimpan gambar buruh pelabuhan Anda dan mendistribusikannya di antara organisasi. Pada artikel ini, kita akan mempelajari cara mengatur registri buruh pelabuhan pribadi di Ubuntu 20.04

Prasyarat

  • Akun pengguna dengan hak istimewa sudo
  • Server untuk registri Docker
  • Nginx di server Docker Registry
  • Server klien
  • Docker dan Docker-Compose di kedua server.

Registry Docker Pribadi

Docker Registry adalah aplikasi sisi Server yang memungkinkan Anda untuk menyimpan gambar buruh pelabuhan Anda secara lokal ke dalam satu lokasi terpusat. Dengan menyiapkan server registri buruh pelabuhan Anda sendiri, Anda dapat menarik dan mendorong gambar buruh pelabuhan tanpa harus terhubung ke hub Docker, menghemat bandwidth dan mencegah Anda dari ancaman keamanan.

Baca Juga :Cara Memasang dan Menggunakan Docker di Ubuntu 20.04 / 20.10

Sebelum Anda mulai

Sebelum memulai, saya memastikan bahwa Anda telah menginstal Docker dan Docker-Compose di server klien dan server registri lokal. Untuk memverifikasi bahwa Anda telah menginstal perangkat lunak yang diperlukan, Anda dapat menjalankan perintah berikut untuk memeriksa versi perangkat lunak.

$ versi buruh pelabuhan

$ versi penulisan buruh pelabuhan

Selain itu, Anda perlu memastikan bahwa layanan buruh pelabuhan dimulai dan diatur untuk diaktifkan saat boot:

$ sudo systemctl start docker$ sudo systemctl enable docker

Instal dan Konfigurasikan Registri Docker Pribadi

Untuk mengonfigurasi Registri Docker Pribadi, ikuti langkah-langkahnya:

Buat Direktori Registri

Konfigurasikan server Anda yang akan meng-host registri pribadi. Buat direktori baru yang akan menyimpan semua file konfigurasi yang diperlukan.

Gunakan perintah berikut untuk membuat direktori proyek baru 'my-registry' dan dua sub direktori 'nginx' dan 'auth'. Anda dapat memiliki asumsi Anda sendiri untuk nama proyek.

$ mkdir -p my-registry/{nginx, auth}

Sekarang navigasikan ke direktori proyek dan buat direktori baru di dalam nginx sebagai:

$ cd my-registry/$ mkdir -p nginx/{conf.d/, ssl}

Buat skrip dan layanan Docker-Compose

Anda perlu membuat skrip docker-compose.yml baru yang mendefinisikan versi dan layanan docker-compose yang diperlukan untuk menyiapkan registri pribadi.

Buat file baru “docker-compose.yml” di dalam direktori “my-registry” dengan editor vi.

$ vi docker-compose.yml

Tentukan layanan Anda di file komposisi buruh pelabuhan sebagai:

 layanan # # Registry:Gambar:Restistry:2 Restart:Selalu port:"5000:5000" Lingkungan:Registry_Auth:HTPasswd Registry_Auth_htpasswd_Realm:Registry-Realm Registry_Path:/Auth/Registry.Passwd Registry_rootDirectory:/ Data Volume:- myregistrydata:/data      - ./auth:/auth    networks:      - mynet#Nginx Service  nginx:    image:nginx:alpine    container_name:nginx    mulai ulang:kecuali dihentikan    tty:true    port:      "80: "   "80:" volumes:      - ./nginx/conf.d/:/etc/nginx/conf.d/      - ./nginx/ssl/:/etc/nginx/ssl/    networks:     - mynet#Docker Networksnetworks:  mynet:    driver:bridge# Volumesvolumes:  myregistrydata:    driver:local

Simpan dan tutup file

Siapkan penerusan port nginx

Kita perlu membuat konfigurasi virtual host nginx untuk layanan web nginx. Buka direktori nginx/conf.d/ yang dibuat pada langkah di atas.

$ cd nginx/conf.d/

Sekarang buat file host virtual nginx dengan editor teks Anda. Dalam contoh ini saya akan menamainya myregistry.conf. Anda dapat memiliki asumsi Anda sendiri.

$ vi myregistry.conf

Tambahkan konten berikut:

upstream docker-registry {    server registry:5000;}server {    listen 80; server_name registry.linuxtechi.com; return 301 https://registry.linuxtechi.com$request_uri;}server {    mendengarkan 443 ssl http2; server_name registry.linuxtechi.com; ssl_certificate /etc/nginx/ssl/certificate.crt; ssl_certificate_key /etc/nginx/ssl/private.key; # File log untuk Debug    error_log  /var/log/nginx/error.log; access_log /var/log/nginx/access.log; lokasi / {        if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" )  {           return 404; }        proxy_pass                       http://docker-registry; proxy_set_header  Host             $http_host; proxy_set_header  X-Real-IP        $remote_addr; proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for; proxy_set_header  X-Forwarded-Proto $scheme; proxy_read_timeout                900; }}

Ganti nama domain Anda dengan parameter server_name dan simpan file tersebut.

Meningkatkan ukuran upload file nginx

Secara default, nginx memiliki batas 1mb untuk mengunggah file. Karena gambar buruh pelabuhan melebihi batas ini, Anda perlu menambah ukuran unggahan dalam file konfigurasi nginx. Dalam contoh ini, saya akan membuat file konfigurasi nginx tambahan dengan batas upload 2GB .

Buka direktori konfigurasi nginx

$ cd myregistry/nginx/conf.d$ vi tambahan.conf

Tambahkan baris berikut dan simpan file

client_max_body_size 2G;

Konfigurasikan sertifikat SSL dan Otentikasi

Setelah membuat file konfigurasi nginx, sekarang kita perlu menyiapkan ssl certificate. Anda harus memiliki file sertifikat ssl yang valid dengan kunci pribadi. Salin file sertifikat dan kunci pribadi Anda ke direktori nginx/ssl sebagai:

$ cd myregistry/nginx/ssl$ cp /your-ssl-certificate-path/certificate.crt .$ cp /your-private-key-path/private.key .

Jika Anda tidak memiliki sertifikat ssl yang dibeli secara valid, Anda dapat membuat sendiri sertifikat ssl yang ditandatangani sendiri. Ingatlah bahwa sertifikat ssl yang ditandatangani sendiri tidak disarankan untuk lingkungan produksi. Untuk membuat sertifikat ssl yang ditandatangani sendiri, jalankan perintah berikut:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout \ /etc/ssl/private/nginx-private.key -out /etc/ssl/certs/nginx-certificate.crt 

Anda akan diminta untuk mengirimkan beberapa detail seperti, Kode negara, nama domain, id email. Isi detailnya dan lanjutkan.

Sekarang siapkan otentikasi Dasar sebagai:

Buka direktori auth

$ cd auth

Minta file kata sandi baru bernama registry.password untuk pengguna Anda. Dalam contoh ini saya akan menggunakan pengguna linuxtechi.

$ htpasswd -Bc registry.password linuxtechi

Jika Anda mendapatkan 'htpasswd not found command', jalankan perintah berikut di terminal Anda dan coba lagi.

$  sudo apt install apache2-utils -y

Ketik kata sandi yang kuat dan masukkan lagi untuk mengonfirmasi kata sandi Anda. Anda telah menambahkan pengguna otentikasi dasar untuk registri buruh pelabuhan.

Jalankan Registri Docker

Anda telah menyelesaikan penyiapan. Anda dapat membangun registri menggunakan perintah docker-compose.

Buka direktori, tempat kita membuat file docker-compose.yml

$ cd myregistry

Sekarang jalankan perintah berikut:

$ docker-compose up -d

Registri Docker sekarang aktif, Anda dapat memverifikasi container yang sedang berjalan menggunakan perintah berikut:

$ docker ps -a

Anda akan mendapatkan output berikut:

Tarik Gambar dari Docker Hub ke registri Pribadi

Untuk menyimpan image dari hub Docker ke registri pribadi, gunakan perintah docker pull untuk menarik image docker dari hub docker. Dalam contoh ini, saya akan menarik gambar buruh pelabuhan dari centos.

$ docker tarik centos

Setelah berhasil menarik gambar dari hub buruh pelabuhan, beri tag pada gambar untuk memberi label untuk registri pribadi.

Dalam contoh ini, saya akan menandai gambar centos sebagai:registry.linuxtechi.com/linuxtechi-centos

$ docker image tag [nama gambar] registry.linuxtechi.com/[new-image-name]

Contoh:

$ tag gambar buruh pelabuhan centos registry.linuxtechi.com/linuxtechi-centos

Untuk memeriksa apakah gambar buruh pelabuhan tersedia secara lokal atau tidak, jalankan perintah berikut.

$ gambar buruh pelabuhan

Docker image buruh pelabuhan ke registri pribadi

Anda telah menarik gambar buruh pelabuhan dari hub buruh pelabuhan dan membuat tag untuk registri pribadi. Sekarang Anda perlu mendorong image buruh pelabuhan lokal ke registri pribadi.

Pertama, Login ke registri pribadi Anda menggunakan perintah berikut:

$ login buruh pelabuhan https://registry.linuxtechi.com/v2/

Gunakan url registri Anda sendiri sebagai ganti ‘https://registry.linuxtechi.com’

Anda akan dimintai nama pengguna dan kata sandi; Anda akan mendapatkan pesan login berhasil sebagai:

Sekarang Anda dapat mendorong gambar buruh pelabuhan Anda ke registri pribadi. Untuk mendorong gambar jalankan perintah berikut:

$ docker push registry.linuxtechi.com/linuxtechi-centos

Ganti nama gambar Anda setelah 'docker push'

Setelah push selesai, Anda dapat membuka browser dan memasukkan url:

https://registry.linuxtechi.com/v2/_catalog

Ganti registry.linuxtechi.com dengan url Anda sendiri dan berikan otentikasi dasar. Anda akan menemukan daftar repositori sebagai :

Menarik image buruh pelabuhan dari Private Registry

Anda telah mendorong image buruh pelabuhan lokal ke registri buruh pelabuhan pribadi Anda. Dengan cara yang sama Anda dapat menarik gambar buruh pelabuhan dari registri pribadi buruh pelabuhan ke server lokal.

Jalankan perintah berikut untuk login di server registri pribadi Anda.

$ login buruh pelabuhan https://registry.linuxtechi.com

Ganti registry.linuxtechi.com dengan url registri pribadi Anda dan berikan otentikasi dasar. Setelah login berhasil, jalankan perintah berikut untuk menarik gambar buruh pelabuhan dari registri pribadi. Dalam contoh ini, saya akan menarik gambar buruh pelabuhan yang sebelumnya didorong di server lokal. Anda dapat memiliki asumsi Anda sendiri untuk nama gambar buruh pelabuhan.

$ docker pull registry.linuxtechi.com/linuxtechi-centos

Anda akan memiliki output yang mirip dengan:

Kesimpulan:

Dalam artikel Anda telah belajar tentang cara meng-host registri buruh pelabuhan pribadi Anda sendiri. Anda juga mendapat ide tentang cara menarik gambar dari hub buruh pelabuhan ke server lokal, menandai gambar dan memasukkannya ke registri pribadi. Anda juga telah mempelajari cara menarik gambar buruh pelabuhan dari registri pribadi di server lokal.

Baca Juga :Cara Menginstal KVM di Server Ubuntu 20.04 LTS (Focal Fossa)


Ubuntu
  1. Cara Mengatur Registri Docker Pribadi di Rocky Linux 8

  2. Cara Mengatur HAProxy di Ubuntu 16.04

  3. Bagaimana Cara Membersihkan Docker Jaringan Di Ubuntu Gnome 15.10?

  1. Cara Mengatur dan Menggunakan Registri Docker Pribadi

  2. Cara Menginstal Docker Di Ubuntu 18.04

  3. Cara Menginstal Docker di Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  1. Cara Menginstal Kubernetes di Ubuntu 18.04

  2. Cara Menginstal Docker Compose di Ubuntu 18.04

  3. Cara Menginstal Rancher di Ubuntu