Pada CoreOS, Atur Registri Docker Anda Sendiri

Kita semua tahu dan cinta Docker, sebuah platform untuk membuat, mengelola, dan mendistribusikan kontainer aplikasi di beberapa mesin. Docker Inc. menyediakan layanan untuk meng-host wadah sumber terbuka untuk diunduh (atau ditarik) seperti repositori git yang dikenal sebagai "Docker Registry." Anggap saja seperti GitHub untuk wadah Docker.

Tetapi bagaimana jika Anda ingin meng-host registri Anda sendiri terpisah dari yang umum? Yah, Docker Inc. telah membuka aplikasi Registry mereka di GitHub.

Tutorial ini akan membawa Anda melalui proses pengaturan registri Docker pribadi menggunakan CoreOS pada VPS baru.

CoreOS + Docker

Kami tidak akan menghabiskan banyak waktu untuk membahas apa yang dapat dilakukan Docker dan CoreOS, karena hal tersebut berada di luar cakupan tutorial ini. Intinya, CoreOS dirancang untuk kelompok server besar, kecil, cepat, dan mendapatkan pembaruan keamanan rutin secara otomatis. Sistem root file-nya juga hanya-baca, artinya Anda harus menggunakan Docker untuk menjalankan semua jenis perangkat lunak yang tidak disertakan dengan instalasi dasar.

Ini menjadikan Core OS sistem host yang sempurna untuk Docker!

Menarik dan menjalankan registri terbaru

Docker Inc. telah menyediakan Registry sebagai gambar tingkat atas, ini berarti kami dapat menariknya dengan sederhana:

docker pull registry

Ini bisa memakan waktu beberapa menit, tergantung pada kecepatan koneksi.

Plus menjadi gambar tingkat atas juga berarti mendapat dukungan dan pembaruan rutin.

Sekarang mari kita menguji registri. Kami dapat membuat wadah baru menggunakan gambar registri:

docker run -p 5000:5000 -d --name=basic_registry registry

Bagi mereka yang belum terlalu banyak menggunakan Docker, -pflag adalah singkatan PORT, artinya kita mengekspos port 5000 dari wadah ke host port 5000.

The -dbendera singkatan daemon, ini akan menyebabkan wadah untuk berjalan di latar belakang dan tidak mencetak output ke sesi SSH saat ini, kami juga ingin nama wadah tes dasar ini menggunakan --namepilihan sehingga kita dapat dengan mudah mengelola nanti.

Pastikan bahwa wadah registri dasar Anda sedang berjalan menggunakan docker ps. Outputnya akan terlihat mirip dengan:

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
edfb54e4a8c4        registry:0.8.1      "/bin/sh -c 'exec do   7 seconds ago       Up 6 seconds        0.0.0.0:5000->5000/tcp   basic_registry

Juga, kunjungi http://YOUR_IP:5000di browser web Anda, dan Anda akan mendapatkan pesan seperti berikut:

"docker-registry server (dev) (v0.8.1)"

Perhatikan kata devdalam kurung. Ini berarti bahwa server sedang menjalankan konfigurasi dev. Kami akan segera mencari lebih banyak konfigurasi.

Sekarang Anda memiliki registry container (sangat dasar) Anda sendiri yang sedang berjalan! Tapi kita belum selesai.

Mungkin Anda ingin menjaga kerahasiaan ini dari pengintaian, atau mungkin menyimpan gambar Anda di Amazon S3 alih-alih penyimpanan lokal. Mari kita membahas berbagai opsi konfigurasi di bagian selanjutnya.

Sebelum kita melanjutkan, mari kita bunuh wadah uji sehingga kita tidak mengalami port yang bertentangan.

docker kill basic_registry

Konfigurasi registri

Ada dua cara yang bisa kita lakukan konfigurasi ke Docker Registry. Salah satu caranya adalah dengan mengirimkan variabel lingkungan ke wadah baru, dan yang lainnya adalah menambahkan file konfigurasi.

Berikut beberapa opsi konfigurasi umum yang akan kami gunakan:

  • loglevel- Jumlah minimum informasi untuk masuk ke konsol. Defaultnya adalah info.
  • standalone- Haruskah Registry ini bertindak sendiri? (Jangan pernah menanyakan registri publik.) Defaultnya adalah true.
  • index_endpoint- Jika tidak berdiri sendiri, indeks apa lagi yang akan kami tanyakan? Standar index.docker.io.
  • cachedan cache_lru- Opsi yang berkaitan dengan menggunakan cache Redis untuk file kecil, kami akan menyentuh ini nanti.
  • storage- Backend penyimpanan apa yang harus kita gunakan untuk server ini? (Dalam tutorial ini kita akan menggunakan lokal).
  • storage_path - Jika menggunakan penyimpanan lokal, direktori apa yang harus kita gunakan untuk menyimpan file?

Sebelum kita mulai bekerja dengan konfigurasi, kita perlu file dasar untuk bekerja. File dari repositori Docker Registry di GitHub akan berfungsi dengan baik:

wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml

File harus berhasil disimpan dengan output seperti:

2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]

Bagus! Sekarang kita dapat memodifikasi file ini agar sesuai dengan kebutuhan kita.

Satu-satunya editor teks yang dilengkapi dengan Core OS adalah vim, tetapi jangan khawatir jika Anda belum pernah menggunakannya, ini akan menjelaskan langkah demi langkah apa yang harus diedit dan bagaimana melakukannya.

vim config_sample.yml

Setelah file terbuka, tekan Idan sudut kanan bawah akan ditampilkan: -- INSERT --untuk mode penyisipan. Gulir ke bagian bawah file menggunakan tombol panah Anda, Anda akan melihat bagian berlabel prod.

Kami akan mengubah dua baris, perubahan di bawah

prod:
    <<: *local
    storage_path: _env:STORAGE_PATH:/data

Apa yang kami lakukan adalah mengubah prodkonfigurasi untuk mendapatkan dari localbagian daripada s3bagian. Lalu kami menimpa storage_pathuntuk menggunakan jalur /datadi dalam wadah baru.

Setelah Anda mengonfirmasi bahwa semua perubahan sudah benar, tekan ESCuntuk keluar dari mode dan jenis penyisipan :wq(ini berarti menulis perubahan pada file, dan keluar dari vim.)

Sekarang mari kita ganti nama file menjadi adil config.yml

mv config_sample.yml config.yml

Redis caching (opsional)

Jika Anda ingin menggunakan redis untuk mempercepat registrasi kontainer Anda, itu semudah menarik kontainer baru dari registry publik dan menambahkan beberapa baris konfigurasi lagi.

Pertama, tarik gambar tingkat atas Redis:

docker pull redis

Setelah gambar berhasil ditarik, kita bisa menjalankannya dan beri nama seperti yang kita lakukan dengan registri tes:

docker run -d --name registry-redis redis

Karena redis ada di memori, kita tidak perlu melakukan konfigurasi apa pun untuk itu, karena kita akan menautkannya ke wadah registri pada langkah selanjutnya.

Sekali lagi, pastikan itu berjalan dengan menggunakan docker ps:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
54f65641eccf        redis:2.8           "redis-server"      2 seconds ago       Up 1 seconds        6379/tcp            registry-redis

Sekarang kembali buka config.ymldi vimdan masukkan insert modus seperti pertama kali kita mengeditnya.

Tambahkan baris berikut di bawah prodbagian ini, pastikan untuk indentasi dengan benar. Kali ini kami hanya menambahkan cachedan cache_lru.

cache:
    host: _env:REDIS_PORT_6379_TCP_ADDR
    port: _env:REDIS_PORT_6379_TCP_PORT
    db: 0

cache_lru:
    host: _env:REDIS_PORT_6379_TCP_ADDR
    port: _env:REDIS_PORT_6379_TCP_PORT
    db: 1

Variabel lingkungan REDIS_PORT_6379_TCP_ADDRdan REDIS_PORT_6379_TCP_PORTditeruskan ke wadah registri setelah dikaitkan dengan wadah Redis.

Dengan itu, Anda sekarang telah menyiapkan wadah Redis yang akan bekerja bahu-membahu dengan wadah registri Anda. Sekarang untuk membangun registri!

Membangun wadah

Kami memiliki semua konfigurasi dan siap, sekarang kita perlu membangun wadah registri yang sebenarnya.

Jalankan vim Dockerfileuntuk membuat Dockerfile baru. Masuk ke mode penyisipan dan ikuti pengeditan di bawah ini.

FROM registry:latest

# Add the custom configuration file we made 
ADD ./config.yml /docker-registry/config/config.yml

# Create the data directory
RUN mkdir /data

# Set the configuration file to config.yml
env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml

# Make sure we use the prod configuration settings 
env SETTINGS_FLAVOR prod

Apa yang telah kami lakukan di atas pada dasarnya memperpanjang citra registri sehingga akan menggunakan file konfigurasi dan pengaturan kami. Dockerfile adalah sekumpulan instruksi build untuk dibaca dan dibangun oleh Docker. Jika Anda ingin mempelajari lebih lanjut tentang Dockerfiles dan sintaksisnya, lihat dokumentasi situs Docker resmi.

Selanjutnya kita perlu membangun wadah untuk digunakan.

docker build -t my_registry .


Sending build context to Docker daemon 13.82 kB
Sending build context to Docker daemon 
Step 0 : FROM registry
 ---> e42d15ec8417
Step 1 : ADD ./config.yml /docker-registry/config/config.yml
 ---> 4339f026d459
Removing intermediate container 2d5138fbcd34
Step 2 : RUN mkdir /data
 ---> Running in a090f0bdbfd1
 ---> 8eb27ba6e12a
Removing intermediate container a090f0bdbfd1
Step 3 : env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
 ---> Running in 565b5bfb2b22
 ---> 914462e46dc0
Removing intermediate container 565b5bfb2b22
Step 4 : env SETTINGS_FLAVOR prod
 ---> Running in 31a92847b851
 ---> b5949575c374
Removing intermediate container 31a92847b851
Successfully built b5949575c374

Sekarang kita siap berlari!

Mari kita membuat direktori pada sistem host kita untuk dipasang di wadah sebagai /datavolume.

mkdir registry-data

Sekarang kita bisa memunculkan wadah baru. Jika Anda berencana menggunakan cache Redis, gunakan perintah ke-2 di bawah ini.

# For a non-Redis cache registry
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg my_registry

# For a Redis cached registry (Must have followed Redis Caching section above)
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg --link registry-redis:redis my_registry

Untuk memastikan server Anda berjalan dengan benar, kunjungi http://YOUR_IP:5000. Anda akan melihat pesan berikut:

"docker-registry server (prod) (v0.8.1)"

Perhatikan (prod)arti perubahan konfigurasi kami berhasil!

Konfigurasikan klien Docker lokal Anda

Sekarang kami memiliki registri berjalan sendiri, kami ingin klien Docker di komputer lokal kami mulai menggunakannya. Biasanya Anda akan menggunakan perintah:, docker logintetapi untuk penggunaan kami, kami perlu menambahkan satu argumen lagi ke perintah login:

docker login YOUR_IP:5000

Masukkan nama pengguna dan kata sandi (anggap ini seperti membuat akun baru) dan abaikan pesan yang menyatakan bahwa Anda harus mengaktifkannya.

Selanjutnya, mari kita tarik gambar stok, dan dorong ke repositori kita sendiri.

# Pull the busybox image from the public registry
docker pull busybox

# Tag it with our IP/URL
docker tag busybox YOUR_IP:5000/busybox

# Push it to our newly made registry
docker push YOUR_IP:5000/busybox

Jika semuanya mendorong dengan benar, pesan terakhir harus sesuai:

Pushing tag for rev [a9eb17255234] on 

Selamat! Anda telah menyiapkan repositori buruh pelabuhan Anda sendiri.

Apa berikutnya?

Berikut adalah beberapa ide tentang cara meningkatkan registri pribadi baru Anda:

  • Membalikkan proxy menggunakan Nginx atau Apache untuk menempatkan keamanan tambahan di depannya, seperti auth HTTP sederhana.
  • Dapatkan domain untuk server Anda dan setup sehingga Anda dapat mengakses registri Anda dengan sesuatu seperti: registry.mysite.com
  • Beli (atau tandatangani sendiri) sertifikat SSL untuk menambahkan lebih banyak perlindungan jika wadah Anda berisi informasi sensitif.


Leave a Comment

Menyebarkan Kubernet Dengan Kubeadm di CentOS 7

Menyebarkan Kubernet Dengan Kubeadm di CentOS 7

Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada

Instal OS Rancher melalui iPXE

Instal OS Rancher melalui iPXE

Rancher OS adalah distribusi Linux yang sangat ringan yang dibangun di sekitar Docker. OS itu sendiri berbobot sekitar 20MB. Tutorial ini akan membantu Anda menjalankan dan menjalankannya

Instal Docker CE di Ubuntu 18.04

Instal Docker CE di Ubuntu 18.04

Pendahuluan Docker adalah aplikasi yang memungkinkan kita untuk menyebarkan program yang dijalankan sebagai wadah. Itu ditulis dalam bahasa pemrograman Go populer

Menginstal Docker pada CentOS 7

Menginstal Docker pada CentOS 7

Menggunakan Sistem yang Berbeda? Docker adalah aplikasi yang memungkinkan untuk penyebaran perangkat lunak dalam wadah virtual. Itu ditulis dalam programmin Go

Cara Memasang Harbour pada CentOS 7

Cara Memasang Harbour pada CentOS 7

Harbor adalah server registri sumber terbuka kelas perusahaan yang menyimpan dan mendistribusikan gambar Docker. Harbor memperluas distribusi Docker sumber terbuka b

Menginstal docker-compose di CoreOS

Menginstal docker-compose di CoreOS

Artikel ini menjelaskan cara menginstal docker-compose di CoreOS. Di CoreOS, folder / usr / tidak dapat diubah sehingga jalur standar / usr / local / bin tidak tersedia untuk

Instal Rancher di CentOS 7

Instal Rancher di CentOS 7

Menggunakan Sistem yang Berbeda? Pendahuluan Rancher adalah platform sumber terbuka untuk menjalankan kontainer dan membangun layanan kontainer pribadi. Peternak adalah pangkalan

Instal Rancher di Ubuntu 16.04

Instal Rancher di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Pendahuluan Rancher adalah platform sumber terbuka untuk menjalankan kontainer dan membangun layanan kontainer pribadi. Peternak adalah pangkalan

Menyebarkan Aplikasi PHP Menggunakan Docker-compose

Menyebarkan Aplikasi PHP Menggunakan Docker-compose

Aplikasi PHP biasanya disusun oleh server web, sistem basis data relasional dan juru bahasa itu sendiri. Dalam tutorial ini kita akan menjadi leveragin

Sticky Session With Docker Swarm (CE) pada Debian 9

Sticky Session With Docker Swarm (CE) pada Debian 9

Menggunakan Sistem yang Berbeda? Pendahuluan Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer; memfasilitasi penskalaan, ketersediaan tinggi an

Dua Alat Pengelola Grafis Docker: DockerUI dan Galangan Kapal

Dua Alat Pengelola Grafis Docker: DockerUI dan Galangan Kapal

Dengan bantuan aplikasi Vultr Docker, Anda dapat dengan mudah menggunakan Docker pada instance server Vultr Anda. Sementara itu, Anda dapat memfasilitasi tugas mengelola Docker

Setup Sentry via Docker di Ubuntu 16.04

Setup Sentry via Docker di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Pendahuluan Sentry adalah solusi open source untuk pelacakan kesalahan. Sentry melacak pengecualian dan pesan berguna lainnya

Instal Server Rancher di RancherOS

Instal Server Rancher di RancherOS

Ikhtisar RancherOS adalah sistem operasi yang sangat ringan (hanya sekitar 60 MB) yang menjalankan daemon Docker sistem sebagai PID 0 untuk menjalankan layanan sistem

Memulai dengan Kubernetes di CentOS 7

Memulai dengan Kubernetes di CentOS 7

Kubernetes adalah platform sumber terbuka yang dikembangkan oleh Google untuk mengelola aplikasi kemas di sekelompok server. Itu dibangun di atas satu dekade dan

Sticky Session With Docker Swarm (CE) pada CentOS 7

Sticky Session With Docker Swarm (CE) pada CentOS 7

Menggunakan Sistem yang Berbeda? Pendahuluan Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer, memfasilitasi penskalaan, ketersediaan tinggi dan

Cara Menggunakan Docker: Membuat Kontainer Docker Pertama Anda

Cara Menggunakan Docker: Membuat Kontainer Docker Pertama Anda

Tutorial ini menjelaskan dasar-dasar memulai Docker. Saya berasumsi bahwa Anda sudah menginstal Docker. Langkah-langkah dalam tutorial ini akan bekerja pada sebuah

Muat Saldo dengan Docker

Muat Saldo dengan Docker

Saat menjalankan aplikasi web, Anda biasanya ingin memaksimalkan sumber daya Anda tanpa harus mengonversi perangkat lunak Anda untuk menggunakan multithreading.

Mulai Dengan SQL Server 2017 (MS-SQL) di CentOS 7 Dengan Docker

Mulai Dengan SQL Server 2017 (MS-SQL) di CentOS 7 Dengan Docker

Prasyarat Mesin Docker 1.8+. Minimal 4GB ruang disk. Minimal RAM 4GB. Langkah 1. Instal Docker Untuk menginstal SQL-Server, Docker mus

Menyebarkan Aplikasi Node.js Menggunakan Docker

Menyebarkan Aplikasi Node.js Menggunakan Docker

Artikel ini akan menunjukkan kepada Anda bagaimana menyebarkan aplikasi Node Anda dalam wadah Docker. Catatan: Tutorial ini mengasumsikan bahwa Anda telah menginstal dan membaca Docker

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut