Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk membina gudang imej Docker yang selamat dan boleh dipercayai pada pelayan Linux?
Bagaimana untuk membina gudang imej Docker yang selamat dan boleh dipercayai pada pelayan Linux?
Dengan perkembangan pesat teknologi kontena, Docker telah menjadi alat biasa untuk membina dan mengurus aplikasi kontena. Walau bagaimanapun, dalam aplikasi praktikal, cara mewujudkan gudang imej Docker yang selamat dan boleh dipercayai adalah isu penting. Artikel ini akan memperkenalkan cara untuk mewujudkan gudang imej Docker yang selamat dan boleh dipercayai pada pelayan Linux, dan menyediakan contoh kod untuk rujukan.
Mula-mula, anda perlu memasang Docker pada pelayan Linux. Ia boleh dipasang melalui arahan berikut:
$ sudo apt-get update $ sudo apt-get install docker-ce
Selepas pemasangan selesai, jalankan arahan berikut untuk mengesahkan sama ada pemasangan berjaya:
$ docker version
Seterusnya, anda perlu mengkonfigurasi Docker gudang imej. Anda boleh memilih untuk menggunakan imej Registry rasmi Docker atau imej sumber terbuka pihak ketiga, seperti Harbour, Nexus, dsb.
Mengambil imej Registry rasmi Docker sebagai contoh, anda boleh memulakan bekas Registry melalui arahan berikut:
$ docker run -d -p 5000:5000 --name registry registry:latest
Selepas permulaan selesai, anda boleh mengesahkan sama ada Registry berfungsi dengan baik melalui arahan berikut:
$ curl http://localhost:5000/v2/_catalog
Jika tatasusunan kosong dikembalikan []
, menunjukkan bahawa Registry telah berjaya dijalankan. []
,说明Registry已经成功运行。
为了保证镜像仓库的安全,需要添加认证和授权功能。可以使用Nginx作为反向代理服务器,并使用Basic Auth认证方式。
首先,安装Nginx:
$ sudo apt-get install nginx
然后,创建一个用于存放认证信息的密码文件:
$ sudo sh -c "echo -n 'admin:' >> /etc/nginx/.htpasswd" $ sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"
创建完成后,需要编辑Nginx配置文件/etc/nginx/sites-available/default
,添加如下内容:
server { listen 80; server_name <your-domain-name>; location / { proxy_pass http://localhost:5000; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; } }
替换454b098903dd34fa7086458fb3f097b6
为你的域名。
保存配置文件并重启Nginx:
$ sudo systemctl restart nginx
为了保证通信的安全性,可以使用HTTPS协议进行通信。需要先为镜像仓库生成自签名证书。
首先,安装OpenSSL:
$ sudo apt-get install openssl
然后,生成私钥和自签名证书:
$ sudo openssl req -newkey rsa:2048 -nodes -keyout registry.key -x509 -days 365 -out registry.crt
生成的registry.key
为私钥文件,registry.crt
为自签名证书文件。
接下来,编辑Nginx配置文件/etc/nginx/sites-available/default
,添加如下内容:
server { listen 443 ssl; server_name <your-domain-name>; ssl_certificate /path/to/registry.crt; ssl_certificate_key /path/to/registry.key; location / { proxy_pass http://localhost:5000; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; } }
替换454b098903dd34fa7086458fb3f097b6
$ sudo systemctl restart nginx
Kemudian, cipta fail kata laluan untuk menyimpan maklumat pengesahan:
$ sudo vi /etc/docker/daemon.json
Selepas penciptaan, anda perlu mengedit fail konfigurasi Nginx /etc/nginx/sites-available/default kod>, tambahkan yang berikut:
{ "insecure-registries": ["<your-domain-name>:5000"] }
Ganti
Simpan fail konfigurasi dan mulakan semula Nginx:
$ sudo systemctl restart docker
Konfigurasikan sokongan HTTPS
🎜🎜Untuk memastikan keselamatan komunikasi, anda boleh menggunakan protokol HTTPS untuk komunikasi. Anda perlu menjana sijil yang ditandatangani sendiri untuk gudang imej terlebih dahulu. 🎜🎜Mula-mula, pasang OpenSSL: 🎜$ docker tag image <your-domain-name>:5000/image $ docker push <your-domain-name>:5000/image $ docker pull <your-domain-name>:5000/image🎜Kemudian, jana kunci peribadi dan sijil yang ditandatangani sendiri: 🎜rrreee🎜
registry.key
yang dihasilkan ialah fail kunci peribadi, registry.crt Ia adalah fail sijil yang ditandatangani sendiri. 🎜🎜Seterusnya, edit fail konfigurasi Nginx <code>/etc/nginx/sites-available/default
dan tambah kandungan berikut: 🎜rrreee🎜Ganti 78ef78f5b2ae859ff4e0615c8c260ad5
untuk nama domain anda. 🎜🎜Simpan fail konfigurasi dan mulakan semula Nginx: 🎜rrreee🎜🎜Gunakan klien Docker untuk berinteraksi dengan repositori imej🎜🎜🎜Akhir sekali, gunakan klien Docker untuk berinteraksi dengan repositori imej. Pertama, anda perlu mengkonfigurasi repositori yang dipercayai untuk Docker: 🎜rrreee🎜Tambah kandungan berikut dalam fail konfigurasi: 🎜rrreee🎜Simpan fail konfigurasi dan mulakan semula perkhidmatan Docker: 🎜rrreee🎜Kini anda boleh menggunakan klien Docker untuk berinteraksi dengan repositori imej, sebagai contoh, tolak Dan tarik imej: 🎜rrreee🎜Di atas adalah semua langkah dan contoh kod untuk mewujudkan gudang imej Docker yang selamat dan boleh dipercayai pada pelayan Linux. Dengan mengikuti langkah ini, anda boleh membina gudang imej Docker yang selamat dan boleh dipercayai untuk memastikan kebolehpercayaan dan keselamatan aplikasi kontena. 🎜
Atas ialah kandungan terperinci Bagaimana untuk membina gudang imej Docker yang selamat dan boleh dipercayai pada pelayan Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!