GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Setup Docker Private Registry di CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Registri Docker adalah bagian dari aplikasi yang memungkinkan Anda menyimpan dan mendistribusikan gambar Docker secara internal (dalam organisasi Anda). Docker bahkan memiliki registri publik, yang dikenal sebagai Docker Hub, gratis untuk menyimpan gambar Docker.

Namun, masalah dengan registri publik Docker adalah gambar yang Anda unggah menjadi publik. Ini bukan yang Anda atau organisasi Anda harapkan ketika Anda bekerja berjam-jam untuk membangun citra dan itu dipublikasikan.

Untuk mengatasi rintangan ini, Anda dapat menyiapkan registri Docker untuk proyek Anda secara pribadi sehingga hanya Anda atau organisasi Anda yang dapat menyimpan gambar Docker di dalamnya dan mendistribusikan di antara rekan kerja Anda.

Di sini, dalam panduan teknis ini, kita akan membahas tentang cara mengatur Docker Private Registry di CentOS 7 / Ubuntu 16.04 / Fedora 26/ 25 .

Infrastruktur

HostName Alamat IP Sistem Operasi Tujuan
registry.itzgeek.local 192.168.12.10 CentOS 7 Bertindak sebagai server registri pribadi Docker
build.itzgeek.local 192.168.12.20 Ubuntu 16.04 Bertindak sebagai node mesin Docker di mana pengembang akan membangun image Docker baik dengan dockerfile atau komposisi docker, dan kemudian mengunggah gambar tersebut ke server registri pribadi docker di atas.
deploy.itzgeek.local 192.168.12.30 Fedora 26/25 Bertindak sebagai simpul mesin Docker tempat kami menyebarkan kontainer yang diunduh (tarik) dari server registri pribadi.
Di sini, saya menggunakan lingkungan campuran (OS) untuk mendemonstrasikan. Saya menyarankan Anda untuk hanya menggunakan lingkungan homogen yang mudah untuk mengatasi masalah yang muncul.

Prasyarat

Instal mesin Docker di semua node Anda dan pastikan layanan Docker aktif dan berjalan.

BACA :Cara menginstal Docker CE di CentOS 7
BACA :Cara menginstal Docker CE di Ubuntu 16.04
BACA :Cara menginstal Docker CE di Fedora 26/25

Siapkan Registri Pribadi Docker

Masuk ke node registri dan tarik gambar registri dari Docker Hub.

[root@registry ~]# docker pull registry

Pilih apakah Anda ingin menggunakan registri Docker biasa atau aman.

Registry Docker Biasa

[root@registry ~]# docker run -dit -p 5000:5000 --name registry registry

Pendaftaran Pribadi Docker Aman

Secara default, node Docker menggunakan koneksi aman melalui TLS untuk mengunggah atau mengunduh gambar ke atau dari registri pribadi. Anda dapat menggunakan sertifikat TLS yang ditandatangani oleh CA atau ditandatangani sendiri di server Registry.

Di sini, saya akan menggunakan sertifikat yang ditandatangani sendiri untuk mengamankan Docker Registry. Mari buat sertifikat yang ditandatangani sendiri menggunakan perintah berikut.

[root@registry ~]# mkdir -p /certs[root@registry ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/ca.key -x509 -days 365 -out /certs /ca.crtMembuat kunci pribadi RSA 4096 bit........................................ ....++............................................................ ........................................................ .......++menulis kunci pribadi baru ke '/certs/ca.key'-----Anda akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam permintaan sertifikat Anda.Apa yang akan Anda masukkan adalah apa yang disebut Nama Distinguished atau DN.Ada beberapa bidang tetapi Anda dapat membiarkan beberapa kosongUntuk beberapa bidang akan ada nilai default,Jika Anda memasukkan '.', bidang tersebut akan dibiarkan kosong.---- -Nama Negara (kode 2 huruf) [XX]:Nama Negara Bagian atau Provinsi (nama lengkap) []:TNNama Lokal (mis., kota) [Kota Bawaan]:CHNONama Organisasi (mis., perusahaan) [Perseroan Bawaan Ltd]:ITzGeekUnit Organisasi Nama (misalnya, bagian) []:ITCommon Name (misalnya, nama Anda atau nama host server Anda) []:registry.itzgeek.local Alamat Email []:[email protected]

Ganti “registry.itzgeek.local ” dengan FQDN server registri Anda.

Sertifikat yang dihasilkan “ca.crt” harus ditempatkan di semua node build/deploy Anda untuk mempercayai sertifikat ini.

Mulai penampung registri Docker dengan informasi sertifikat.

[root@registry ~]# docker run -d -p 5000:5000 --restart=selalu --name registry -v /certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/ca.crt -e REGISTRY_HTTP_TLS_KEY=/ certs/ca.key registry

Sekarang, Anda memiliki wadah server registri bernama “registry ” berjalan di “registry.itzgeek.local “.

[root@registry ~]# docker ps

Keluaran:

ID Container Perintah gambar dibuat Status port names8641fbc895f5 registry "/entrypoint.sh/e ..." 44 detik yang lalu naik 41 detik 0,0.0.0:5000->5000/tcp Registry

Firewall

Anda perlu membuka port berikut di firewall agar registri Docker tersedia di luar jaringan (ke build.itzgeek.local /deploy.itzgeek.local )

Anda perlu menjalankan perintah berikut di server Docker Registry (registry.itzgeek.local), tergantung pada sistem operasi Anda.

Jika Registri Docker Anda menggunakan CentOS 7 / Fedora 26/25,

[root@registry ~]# firewall-cmd --permanent --add-port=5000/tcp[root@registry ~]# firewall-cmd --reload

Jika Registri Docker Anda ada di Ubuntu 16.04,

root@registry:~# ufw statusroot@registry:~# ufw allow 5000/tcproot@registry:~# ufw muat ulang ufw aktifkan

Sekarang Docker Registry siap untuk mendistribusikan image Docker.

Buat dan unggah Gambar Docker ke server Registri Pribadi

Masuk ke node mesin Docker build Anda, Ex. “build.itzgeek.local

Membangun Gambar Docker

Mari buat image Docker (untuk wadah docker yang disesuaikan) untuk mengunggahnya ke server registri pribadi. Dalam tiga cara Anda dapat membuat/membuat gambar container.

1. Berkomitmen
2. Dockerfile
3. Tulis Docker.

Bangun dan simpan gambar buruh pelabuhan Anda siap untuk diunggah dengan mengikuti salah satu metode yang tercantum di atas.

BACA :Cara Membuat Gambar Docker dengan Docker Commit
BACA :Cara Membuat Gambar Docker dengan DockerFile

Saya telah membuat gambar buruh pelabuhan yang disebut “mycentos:httpdv1.0 ” pada “build.itzgeek.local ” dan sekarang kami akan mengunggahnya ke server registri Pribadi.

root@build:~# gambar buruh pelabuhan

Keluaran:

Sekarang, ganti nama gambar buruh pelabuhan menjadi seperti registryserver:portnumber/image name:tag .

Jika nama gambar tidak sesuai dengan format yang diberikan, maka perintah docker push atau pull akan mencoba mengunggah atau mengunduh gambar dari registri publik, bukan dari registri pribadi.

Untuk mengganti nama gambar buruh pelabuhan gunakan docker tag perintah.

root@build:~# tag buruh pelabuhan mycentos:httpdv1.0 registry.itzgeek.local:5000/mycentos:httpdv1.0

Periksa kembali daftar gambar Docker.

Unggah Gambar Docker

Bergantung pada mode komunikasi (Aman atau Tidak Aman ) dari Docker Registry, ikuti salah satu metode di bawah ini.

Tidak Aman (Registry Http Biasa)

Edit/Buat file “daemon.json ” di “/etc/docker/ ” direktori.

root@build:~# vi /etc/docker/daemon.json

Tambahkan konten berikut ke dalamnya.

{  "insecure-registries" :["registry.itzgeek.local:5000"]}

Aman (Ditandatangani sendiri)

Salin sertifikat “ca.crt ” dari server registri “registry.itzgeek.local ” ke “/etc/docker/certs.d/registry.itzgeek.local:5000/ca.crt ” pada “build.itzgeek.local “.

root@build:~# mkdir -p /etc/docker/certs.d/registry.itzgeek.local:5000/root@build:~# scp -pr [email protected]:/certs/ca .crt /etc/docker/certs.d/registry.itzgeek.local:5000/

Dalam kedua kasus tersebut, Anda perlu memulai ulang layanan mesin Docker.

root@build:~# systemctl restart buruh pelabuhan

Unggah gambar buruh pelabuhan ke server registri pribadi menggunakan perintah berikut.

root@build:~# docker push registry.itzgeek.local:5000/mycentos:httpdv1.0

Unduh dan Deploy image Docker Container dari server Private Registry

Masuk ke node mesin Docker penyebaran Anda, Ex. “deploy.itzgeek.local “.

Bergantung pada mode komunikasi (Aman atau Tidak Aman) Docker Registry, ikuti salah satu metode di bawah ini.

Tidak Aman (Registry Http Biasa)

Edit/Buat file “daemon.json ” di “/etc/docker/ ” direktori.

[root@deploy ~]# vi /etc/docker/daemon.json

Tambahkan konten berikut ke dalamnya.

{  "insecure-registries" :["registry.itzgeek.local:5000"]}

Aman (Ditandatangani sendiri)

Salin sertifikat “ca.crt ” dari server registri “registry.itzgeek.local ” ke “/etc/docker/certs.d/registry.itzgeek.local:5000/ca.crt ” pada “deploy.itzgeek.local “.

[root@deploy ~]# mkdir -p /etc/docker/certs.d/registry.itzgeek.local:5000/[root@deploy ~]# scp -pr [email protected]:/certs /ca.crt /etc/docker/certs.d/registry.itzgeek.local:5000/

Dalam kedua kasus tersebut, Anda perlu memulai ulang layanan mesin Docker.

[root@deploy ~]# systemctl restart docker

Unduh gambar buruh pelabuhan ke server registri pribadi menggunakan perintah berikut.

[root@deploy ~]# docker pull registry.itzgeek.local:5000/mycentos:httpdv1.0

Sekarang, periksa daftar gambar yang tersedia menggunakan “gambar buruh pelabuhan ” perintah

[root@deploy ~]# gambar buruh pelabuhan

Keluaran:

Sekarang image Docker siap untuk diterapkan.

BACA :Cara Menyebarkan Wadah Docker – Antarmuka Baris Perintah

Itu saja.


Cent OS
  1. Cara Mengatur Registri Docker Pribadi di Rocky Linux 8

  2. Cara Mengonfigurasi Autofs di CentOS 7 / Ubuntu 16.04 / Debian 9 / Fedora 27/26

  3. Cara Mengatur Server SVN di CentOS, RHEL &Fedora

  1. Cara Mengatur dan Menggunakan Registri Docker Pribadi

  2. Cara Menginstal Docker Compose di CentOS 7

  3. Cara menginstal buruh pelabuhan di CentOS / RHEL / Fedora

  1. Cara Menginstal Docker di CentOS 8

  2. Cara Menginstal Rancher di CentOS 7

  3. Cara Mengatur Registri Docker Pribadi di Kubernetes (k8s)