Jadual Kandungan
1. Mengapa kita perlu mengoptimumkan imej?
2 Beberapa prinsip untuk membina imej
3. Susun nginx dalam kod sumber simulasi mesin maya
4. Pengoptimuman imej
Rumah Operasi dan penyelenggaraan Docker Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?

Nov 25, 2021 pm 03:48 PM
docker cermin

Prinsip yang harus dipatuhi oleh imej docker: 1. Prinsip pengecilan imej; anda perlu memilih imej asas yang paling diperkemas, membersihkan produk perantaraan pembinaan imej dan mengurangkan bilangan lapisan imej. 2. Prinsip memaksimumkan kelajuan binaan; gunakan sepenuhnya imej untuk membina cache, dan kemudian gunakan cache terbina untuk mempercepatkan binaan imej. 3. Beri perhatian kepada mengoptimumkan permintaan rangkaian.

Apakah prinsip yang harus dipatuhi oleh imej docker?

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi docker-1.13.1, komputer Dell G3.

1. Mengapa kita perlu mengoptimumkan imej?

Semasa kita terus menggunakan imej docker, jika kita tidak memberi perhatian dan mengoptimumkannya semasa proses, saiz imej akan menjadi lebih besar dan lebih besar
Banyak kali apabila kita menggunakan docker untuk menggunakan aplikasi, kita akan mendapati bahawa saiz imej sekurang-kurangnya 1G atau lebih
Peningkatan saiz imej bukan sahaja akan meningkatkan kos sumber cakera dan sumber rangkaian, tetapi juga menjejaskan kecekapan penggunaan aplikasi Masa penggunaan aplikasi akan menjadi lebih lama dan lebih lama
Oleh itu, kita perlu mengurangkan saiz imej penggunaan untuk mempercepatkan kecekapan penggunaan. mengurangkan kos sumber
Bagi pengoptimuman imej, ia boleh dicapai dengan mengoptimumkan fail docker

2 Beberapa prinsip untuk membina imej

(1) Imej prinsip pengecilan

选择最精简的基础镜像

Pilih asas terkecil Pencerminan boleh mengurangkan saiz imej dengan berkesan. Seperti: alpine, busybox, dsb.

清理镜像构建的中间产物

Semasa proses membina imej, apabila arahan fail docker dilaksanakan, padamkan fail yang tidak diperlukan untuk imej.

Jika anda menggunakan yum untuk memasang komponen, anda akhirnya boleh menggunakan yum clean all imej untuk membersihkan fail yang tidak diperlukan atau menggunakan arahan sistem rm untuk memadamkan fail sumber yang tidak diperlukan, dsb.

减少镜像的层数

Imej ialah fail yang disimpan secara hierarki dan imej juga mempunyai had tertentu pada bilangan lapisan Bilangan maksimum lapisan imej semasa ialah 127,

Jika anda tidak memberi perhatian lebih, imej akan menjadi lebih dan lebih kembung.

Apabila menggunakan fail docker untuk membina imej, setiap arahan dalam fail docker akan menghasilkan lapisan

Oleh itu, anda boleh mengurangkan bilangan lapisan dalam imej yang dihasilkan akhir dengan menggabungkan arahan boleh cantum. dalam fail docker.

Contohnya: apabila menggunakan RUN untuk melaksanakan perintah shell dalam fail docker, anda boleh menggunakan "&&" untuk menyambungkan berbilang arahan

采用最最基础的镜像,

Semakin kecil imej , semakin diperkemas ia

(2) Prinsip kelajuan binaan terpantas

Gunakan sepenuhnya cache binaan imej

Kita boleh gunakan cache terbina untuk mempercepatkan binaan imej, binaan Docker akan mendayakan caching secara lalai Terdapat tiga perkara penting untuk caching berkuat kuasa:

Lapisan induk imej tidak berubah, arahan binaan kekal tidak berubah dan. jumlah semak fail yang ditambah adalah konsisten.

Selagi arahan binaan memenuhi tiga syarat ini, lapisan bangunan imej ini tidak akan dilaksanakan lagi dan ia akan menggunakan hasil binaan sebelumnya secara langsung.

Selepas cache imej lapisan tertentu menjadi tidak sah, cache lapisan imej seterusnya akan menjadi tidak sah.

Kita harus meletakkan bahagian yang paling sedikit diubah di hadapan Fail Docker supaya kita boleh menggunakan sepenuhnya cache imej.

Terdapat arahan WORKDIR, CMD, ENV, ADD, dsb. dalam fail docker yang boleh menyebabkan cache tidak sah

Adalah yang terbaik untuk meletakkan arahan ini di bahagian bawah fail docker untuk memaksimumkan. penggunaan cache semasa proses membina imej.

Padam fail yang tidak diperlukan dalam direktori binaan (lalai: direktori tempat Fail Docker terletak)

Tulis fail .dockerignore untuk menapis fail yang tidak diperlukan semasa proses binaan atau cipta direktori berasingan dan dalam direktori Hanya fail yang diperlukan semasa proses pembinaan imej wujud.

Docker terbahagi kepada enjin Docker (iaitu, daemon bahagian pelayan) dan alatan sisi klien semasa masa jalan.

Enjin Docker menyediakan satu set API REST, yang dipanggil Docker Remote API

Alat pelanggan seperti arahan docker berinteraksi dengan enjin Docker melalui set API ini.

Jadi, walaupun pada zahirnya nampaknya kami sedang melaksanakan pelbagai fungsi docker secara tempatan, sebenarnya, semuanya dilakukan di bahagian pelayan (enjin Docker) menggunakan panggilan jauh. Perintah binaan docker membina imej Sebenarnya, ia tidak dibina secara tempatan, tetapi pada pelayan, iaitu dalam enjin Docker.

Apabila membina imej, Docker perlu menyediakan konteks terlebih dahulu dan mengumpul semua fail yang diperlukan ke dalam proses.

Konteks lalai mengandungi semua fail dalam direktori Dockerfile.

(3) Beri perhatian kepada mengoptimumkan permintaan rangkaian

Apabila kami menggunakan beberapa sumber cermin atau menggunakan url di Internet dalam fail docker,

gunakan beberapa Tapak sumber terbuka yang agak baik di Internet boleh menjimatkan masa dan mengurangkan kadar kegagalan.

3. Susun nginx dalam kod sumber simulasi mesin maya

选择最精简的基础镜像
减少镜像的层数
清理镜像构建的中间产物
注意优化网络请求
尽量去用构建缓存
Salin selepas log masuk

启动docker:

Apakah prinsip yang harus dipatuhi oleh imej docker?
查看镜像并删除无用的镜像:
Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?
先源码编译nginx,熟悉步骤后好在容器中运行nginx:

Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
关闭debug:
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
查看执行命令:
Apakah prinsip yang harus dipatuhi oleh imej docker?

4. Pengoptimuman imej

peringkat membina imej Seterusnya kita membinanya dengan imej rhel7 bekas, dan pasang pakej kod sumber nginx dalam bekas. Bina imej baharu dengan bekas ini dan optimumkannya
(1) Hantar dua pakej ke pelayan1 pada mesin sebenar

Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
优化思路:将RUN都放在一行,减少镜像层数:
Tulis fail Docker seperti berikut

Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?
优化思路:使用多阶段构建:

Dokcerfile adalah seperti berikut:
Mula-mula simulasi baris arahan untuk mematikan nyahpepijat:
Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?

Apakah prinsip yang harus dipatuhi oleh imej docker?
优化思路:从底层优化:

首先我们需要导入一个distroless和nginx镜像
distroless”镜像只包含应用程序及其运行时依赖项,不包含程序包管理器、shell以及在标准Linux发行版中可以找到的任何其他程序
用distroless去除容器中所有不必要的东西
Salin selepas log masuk

1)从github网站查看例子:
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
(2)从真机给server1发送东西
Apakah prinsip yang harus dipatuhi oleh imej docker?
(3)导入镜像

Apakah prinsip yang harus dipatuhi oleh imej docker?

(4)编写Dockerfile如下
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
(5)构建镜像并查看镜像大小

Apakah prinsip yang harus dipatuhi oleh imej docker?
(6)构建容器并测试
Apakah prinsip yang harus dipatuhi oleh imej docker?
查看IP并能正常访问到Nginx默认发布页,证明容器镜像可以正常使用,但只要内网可以访问:

Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
按照查看桥接的工具:
Apakah prinsip yang harus dipatuhi oleh imej docker?
Apakah prinsip yang harus dipatuhi oleh imej docker?
查看桥接:
Apakah prinsip yang harus dipatuhi oleh imej docker?
做端口映射Apakah prinsip yang harus dipatuhi oleh imej docker?
可以通过外网访问了:
Apakah prinsip yang harus dipatuhi oleh imej docker?

推荐学习:《docker视频教程

Atas ialah kandungan terperinci Apakah prinsip yang harus dipatuhi oleh imej docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Seni bina dan amalan sistem teragih PHP Seni bina dan amalan sistem teragih PHP May 04, 2024 am 10:33 AM

Seni bina sistem teragih PHP mencapai kebolehskalaan, prestasi dan toleransi kesalahan dengan mengedarkan komponen yang berbeza merentasi mesin yang disambungkan ke rangkaian. Seni bina termasuk pelayan aplikasi, baris gilir mesej, pangkalan data, cache dan pengimbang beban. Langkah-langkah untuk memindahkan aplikasi PHP ke seni bina yang diedarkan termasuk: Mengenal pasti sempadan perkhidmatan Memilih sistem baris gilir mesej Mengguna pakai rangka kerja mikroperkhidmatan Penggunaan kepada pengurusan kontena Penemuan perkhidmatan

Docker melengkapkan penggunaan tempatan model besar sumber terbuka LLama3 dalam masa tiga minit Docker melengkapkan penggunaan tempatan model besar sumber terbuka LLama3 dalam masa tiga minit Apr 26, 2024 am 10:19 AM

Gambaran Keseluruhan LLaMA-3 (LargeLanguageModelMetaAI3) ialah model kecerdasan buatan generatif sumber terbuka berskala besar yang dibangunkan oleh Syarikat Meta. Ia tidak mempunyai perubahan besar dalam struktur model berbanding LLaMA-2 generasi sebelumnya. Model LLaMA-3 dibahagikan kepada versi skala yang berbeza, termasuk kecil, sederhana dan besar, untuk memenuhi keperluan aplikasi dan sumber pengkomputeran yang berbeza. Saiz parameter model kecil ialah 8B, saiz parameter model sederhana ialah 70B, dan saiz parameter model besar mencapai 400B. Walau bagaimanapun, semasa latihan, matlamatnya adalah untuk mencapai kefungsian berbilang modal dan berbilang bahasa, dan hasilnya dijangka setanding dengan GPT4/GPT4V. Pasang OllamaOllama ialah model bahasa besar sumber terbuka (LL

Pembangunan tangkas dan pengendalian kontena perkhidmatan mikro PHP Pembangunan tangkas dan pengendalian kontena perkhidmatan mikro PHP May 08, 2024 pm 02:21 PM

Jawapan: Perkhidmatan mikro PHP digunakan dengan HelmCharts untuk pembangunan tangkas dan kontena dengan DockerContainer untuk pengasingan dan kebolehskalaan. Penerangan terperinci: Gunakan HelmCharts untuk menggunakan perkhidmatan mikro PHP secara automatik untuk mencapai pembangunan tangkas. Imej Docker membenarkan lelaran pantas dan kawalan versi perkhidmatan mikro. Piawaian DockerContainer mengasingkan perkhidmatan mikro dan Kubernetes mengurus ketersediaan dan kebolehskalaan bekas. Gunakan Prometheus dan Grafana untuk memantau prestasi dan kesihatan perkhidmatan mikro, serta mencipta penggera dan mekanisme pembaikan automatik.

PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? Mar 05, 2025 pm 05:57 PM

Penjelasan dan Panduan Pemasangan Terperinci untuk Pinetwork Nodes Artikel ini akan memperkenalkan ekosistem pinetwork secara terperinci - nod pi, peranan utama dalam ekosistem pinetwork, dan menyediakan langkah -langkah lengkap untuk pemasangan dan konfigurasi. Selepas pelancaran Rangkaian Ujian Blockchain Pinetwork, nod PI telah menjadi bahagian penting dari banyak perintis yang aktif mengambil bahagian dalam ujian, bersiap sedia untuk pelepasan rangkaian utama yang akan datang. Jika anda tidak tahu kerja pinet, sila rujuk apa itu picoin? Berapakah harga untuk penyenaraian? Penggunaan PI, perlombongan dan analisis keselamatan. Apa itu Pinetwork? Projek Pinetwork bermula pada tahun 2019 dan memiliki syiling pi cryptocurrency eksklusifnya. Projek ini bertujuan untuk mewujudkan satu yang semua orang boleh mengambil bahagian

Cara Memasang DeepSeek Cara Memasang DeepSeek Feb 19, 2025 pm 05:48 PM

Terdapat banyak cara untuk memasang DeepSeek, termasuk: Menyusun dari Sumber (untuk pemaju berpengalaman) menggunakan pakej yang dikompilasi (untuk pengguna Windows) menggunakan bekas docker (untuk yang paling mudah, tidak perlu bimbang tentang keserasian) Dokumen rasmi dengan berhati -hati dan menyediakannya sepenuhnya untuk mengelakkan masalah yang tidak perlu.

Bagaimana untuk mengoptimumkan prestasi fungsi Java melalui kontena? Bagaimana untuk mengoptimumkan prestasi fungsi Java melalui kontena? Apr 29, 2024 pm 03:09 PM

Containerization meningkatkan prestasi fungsi Java dengan cara berikut: Pengasingan sumber - memastikan persekitaran pengkomputeran terpencil dan mengelakkan perbalahan sumber. Ringan - mengambil kurang sumber sistem dan meningkatkan prestasi masa jalan. Permulaan pantas - mengurangkan kelewatan pelaksanaan fungsi. Ketekalan - Asingkan aplikasi dan infrastruktur untuk memastikan tingkah laku yang konsisten merentas persekitaran.

Sebarkan aplikasi JavaEE menggunakan Docker Containers Sebarkan aplikasi JavaEE menggunakan Docker Containers Jun 05, 2024 pm 08:29 PM

Gunakan aplikasi Java EE menggunakan bekas Docker: Cipta Fail Docker untuk mentakrifkan imej, bina imej, jalankan bekas dan petakan port, dan kemudian akses aplikasi dalam penyemak imbas. Contoh aplikasi JavaEE: REST API berinteraksi dengan pangkalan data, boleh diakses pada localhost selepas penggunaan melalui Docker.

Bagaimana untuk menggunakan PHP CI/CD untuk lelaran dengan cepat? Bagaimana untuk menggunakan PHP CI/CD untuk lelaran dengan cepat? May 08, 2024 pm 10:15 PM

Jawapan: Gunakan PHPCI/CD untuk mencapai lelaran pantas, termasuk menyediakan saluran paip CI/CD, ujian automatik dan proses penggunaan. Sediakan saluran paip CI/CD: Pilih alat CI/CD, konfigurasikan repositori kod dan tentukan saluran paip binaan. Ujian automatik: Tulis ujian unit dan penyepaduan dan gunakan rangka kerja ujian untuk memudahkan ujian. Kes praktikal: Menggunakan TravisCI: Pasang TravisCI, tentukan saluran paip, dayakan saluran paip dan lihat hasilnya. Laksanakan penyampaian berterusan: pilih alatan pengerahan, tentukan saluran paip pengerahan dan automatik penggunaan. Faedah: Meningkatkan kecekapan pembangunan, mengurangkan ralat dan memendekkan masa penghantaran.

See all articles