Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Bagaimana untuk membina gudang imej Docker yang cekap pada pelayan Linux?

Bagaimana untuk membina gudang imej Docker yang cekap pada pelayan Linux?

PHPz
PHPzasal
2023-07-29 17:13:261207semak imbas

Bagaimana untuk membina gudang imej Docker yang cekap pada pelayan Linux?

Dengan perkembangan dan populariti teknologi kontena, Docker telah menjadi salah satu penyelesaian kontena yang paling popular. Apabila menggunakan Docker untuk membina dan mengurus aplikasi berskala besar, gudang imej Docker yang cekap adalah sangat penting. Ia bukan sahaja mempercepatkan proses penempatan dan penskalaan, ia juga meningkatkan produktiviti pembangun. Dalam artikel ini, kami akan memperkenalkan cara untuk mewujudkan gudang imej Docker yang cekap pada pelayan Linux dan memberikan contoh kod yang sepadan.

  1. Pasang Docker dan Docker Registry

Mula-mula, kita perlu memasang Docker dan Docker Registry pada pelayan Linux. Docker boleh dipasang melalui skrip pemasangan rasmi Sila rujuk dokumentasi rasmi Docker untuk proses tertentu. Selepas memasang Docker, kami boleh memasang Docker Registry menggunakan arahan berikut:

$ docker run -d -p 5000:5000 --restart=always --name registry registry:2

Perintah ini akan memulakan bekas Docker Registry pada pelayan dan memetakan port 5000 dalam bekas ke 5000 port pelayan.

  1. Konfigurasikan Pendaftaran Docker

Selepas memasang Pendaftaran Docker, kami perlu melakukan beberapa konfigurasi untuk menjadikannya lebih cekap. Pertama, kita perlu mengubah suai fail konfigurasi Docker untuk membenarkan pemindahan imej yang tidak selamat. Edit fail /etc/docker/daemon.json dan tambah kandungan berikut: /etc/docker/daemon.json文件,添加以下内容:

{
  "insecure-registries" : ["your-registry-url:5000"]
}

其中,your-registry-url是你的镜像仓库的URL(例如:my-registry.com)。

接下来,我们需要重新加载Docker的配置文件,以使更改生效:

$ systemctl daemon-reload
$ systemctl restart docker
  1. 创建和上传镜像

现在,我们可以创建Docker镜像并上传到我们的镜像仓库中了。首先,我们需要构建一个Docker镜像。以下是一个示例的Dockerfile文件:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY app.py /app.py
CMD ["python3", "/app.py"]

在同一目录下创建一个名为app.py的文件,并添加一些代码。之后,使用以下命令构建镜像:

$ docker build -t your-registry-url:5000/my-image:1.0 .

your-registry-url替换为你的镜像仓库的URL。

构建完成后,我们可以使用以下命令将镜像上传到镜像仓库中:

$ docker push your-registry-url:5000/my-image:1.0

这将会将构建好的镜像推送到我们的镜像仓库中。

  1. 从镜像仓库中拉取镜像

当我们需要在其他服务器上部署我们的应用时,可以从镜像仓库中拉取所需的镜像。以下是拉取镜像的命令:

$ docker pull your-registry-url:5000/my-image:1.0

这将会从镜像仓库中拉取对应版本的镜像。

  1. 使用私有镜像仓库

为了保护我们的应用和数据安全,我们可以使用访问控制来限制对我们的私有镜像仓库的访问。以下是一种使用基本身份验证(Basic Authentication)方式来控制访问的示例:

首先,我们需要创建一个密码文件,用于存储用户名和密码。使用以下命令创建密码文件:

$ docker run --rm --entrypoint htpasswd registry:2 -Bbn your-username your-password > auth/htpasswd

其中,your-usernameyour-password是你所定义的用户名和密码。

接下来,我们需要修改Docker Registry的启动命令,指定使用访问控制配置。使用以下命令启动Docker Registry容器:

$ docker run -d -p 5000:5000 --restart=always --name registry 
             -v /path/to/auth:/auth 
             -e "REGISTRY_AUTH=htpasswd" 
             -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
             -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" 
             registry:2

其中,将/path/to/authrrreee

di mana, your-registry-url ialah URL repositori cermin anda (untuk contoh: my -registry.com).

Seterusnya, kita perlu memuatkan semula fail konfigurasi Docker untuk perubahan berkuat kuasa:

rrreee

    Buat dan muat naik imej

    Kini kita boleh mencipta imej Docker dan memuat naiknya ke imej kita Gudang ada di. Pertama, kita perlu membina imej Docker. Berikut ialah contoh Dockerfile:

    rrreee🎜Buat fail bernama app.py dalam direktori yang sama dan tambahkan beberapa kod. Selepas itu, gunakan arahan berikut untuk membina imej: 🎜rrreee🎜Ganti url-registry-anda dengan URL pendaftaran anda. 🎜🎜Selepas binaan selesai, kita boleh menggunakan arahan berikut untuk memuat naik imej ke gudang cermin: 🎜rrreee🎜Ini akan menolak imej yang dibina ke gudang cermin kami. 🎜
      🎜Tarik imej dari gudang cermin🎜🎜🎜Apabila kita perlu menggunakan aplikasi kita pada pelayan lain, kita boleh menarik imej yang diperlukan dari gudang cermin. Berikut ialah arahan untuk menarik imej: 🎜rrreee🎜Ini akan menarik versi imej yang sepadan daripada gudang imej. 🎜
        🎜Gunakan repositori imej peribadi🎜🎜🎜Untuk melindungi keselamatan aplikasi dan data kami, kami boleh menggunakan kawalan akses untuk menyekat akses kepada repositori imej peribadi kami. Berikut ialah contoh penggunaan Pengesahan Asas untuk mengawal akses: 🎜🎜Pertama, kita perlu mencipta fail kata laluan untuk menyimpan nama pengguna dan kata laluan. Gunakan arahan berikut untuk mencipta fail kata laluan: 🎜rrreee🎜di mana nama pengguna anda dan kata laluan anda ialah nama pengguna dan kata laluan yang anda tetapkan. 🎜🎜Seterusnya, kita perlu mengubah suai arahan permulaan Docker Registry untuk menentukan penggunaan konfigurasi kawalan akses. Mulakan bekas Docker Registry menggunakan arahan berikut: 🎜rrreee🎜 Di mana, gantikan /path/to/auth dengan laluan ke fail kata laluan anda yang disimpan. 🎜🎜Kini, repositori cermin peribadi anda telah disediakan dengan pengesahan asas dan hanya pengguna yang diberi kuasa boleh mengaksesnya. 🎜🎜Ringkasan🎜🎜Dalam artikel ini, kami memperkenalkan cara membina gudang imej Docker yang cekap pada pelayan Linux. Kami mula-mula memasang dan mengkonfigurasi Docker dan Docker Registry, dan kemudian menunjukkan cara menggunakan gudang imej melalui contoh membina dan memuat naik imej. Akhir sekali, kami membincangkan cara menggunakan pengesahan asas untuk menjamin pendaftaran. 🎜🎜Dengan mewujudkan gudang imej Docker yang cekap, kami boleh mengurus dan menggunakan aplikasi berskala besar dengan lebih baik serta meningkatkan kecekapan pembangunan dan operasi serta penyelenggaraan. Saya harap artikel ini membantu anda dan boleh digunakan dalam aplikasi praktikal. 🎜

Atas ialah kandungan terperinci Bagaimana untuk membina gudang imej Docker yang cekap 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