Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >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?

王林
王林asal
2023-07-28 20:16:511659semak imbas

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.

  1. Pasang Docker

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
  1. Konfigurasi gudang imej Docker

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已经成功运行。

  1. 配置镜像仓库的认证和授权

为了保证镜像仓库的安全,需要添加认证和授权功能。可以使用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
  1. 配置HTTPS支持

为了保证通信的安全性,可以使用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

    Konfigurasikan pengesahan dan kebenaran gudang imej

      Untuk memastikan keselamatan gudang imej, fungsi pengesahan dan kebenaran perlu ditambah. Anda boleh menggunakan Nginx sebagai pelayan proksi terbalik dan menggunakan kaedah pengesahan Pengesahan Asas.
    1. Mula-mula, pasang Nginx:
    $ 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 78ef78f5b2ae859ff4e0615c8c260ad5 dengan nama domain anda.

    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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn