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.
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
选择最精简的基础镜像 减少镜像的层数 清理镜像构建的中间产物 注意优化网络请求 尽量去用构建缓存
启动docker
:
查看镜像并删除无用的镜像
:
先源码编译nginx,熟悉步骤后好在容器中运行nginx
:
关闭debug
:
查看执行命令
:
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
优化思路:将RUN都放在一行,减少镜像层数
:
Tulis fail Docker seperti berikut
优化思路:使用多阶段构建
:
Dokcerfile adalah seperti berikut:
Mula-mula simulasi baris arahan untuk mematikan nyahpepijat:
优化思路:从底层优化
:
首先我们需要导入一个distroless和nginx镜像 distroless”镜像只包含应用程序及其运行时依赖项,不包含程序包管理器、shell以及在标准Linux发行版中可以找到的任何其他程序 用distroless去除容器中所有不必要的东西
1)从github网站查看例子:
(2)从真机给server1发送东西
(3)导入镜像
(4)编写Dockerfile如下
(5)构建镜像并查看镜像大小
(6)构建容器并测试
查看IP并能正常访问到Nginx默认发布页,证明容器镜像可以正常使用,但只要内网可以访问:
按照查看桥接的工具:
查看桥接:
做端口映射
可以通过外网访问了:
推荐学习:《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!

Amalan terbaik untuk menggunakan Docker di Linux termasuk: 1. Amalan ini boleh membantu pengguna menggunakan Docker dengan cekap, mengelakkan masalah biasa dan mengoptimumkan aplikasi kontena.

Menggunakan Docker di Linux dapat meningkatkan kecekapan pembangunan dan penempatan. 1. Pasang Docker: Gunakan skrip untuk memasang Docker di Ubuntu. 2. Sahkan pemasangan: Jalankan Sudodockerrunhello-World. 3. Penggunaan Asas: Buat kontena Nginx Dockerrun-Namemy-Nginx-P8080: 80-Dnginx. 4. Penggunaan Lanjutan: Buat imej tersuai, bina dan lari menggunakan Dockerfile. 5. Pengoptimuman dan amalan terbaik: Ikuti amalan terbaik untuk menulis dockerfiles menggunakan pelbagai peringkat membina dan dockercompose.

Inti pemantauan Docker adalah untuk mengumpul dan menganalisis data operasi bekas, terutamanya termasuk petunjuk seperti penggunaan CPU, penggunaan memori, trafik rangkaian dan cakera I/O. Dengan menggunakan alat seperti Prometheus, Grafana dan Cadvisor, pemantauan komprehensif dan pengoptimuman prestasi bekas dapat dicapai.

Dockerswarm boleh digunakan untuk membina kelompok kontena berskala dan sangat tersedia. 1) Mulakan kelompok kawanan menggunakan DockersWarminit. 2) Sertai kelompok kawanan untuk menggunakan dockerswarmjoin-terperangkap:. 3) Buat perkhidmatan menggunakan DockerServiceCreate-Namemy-Nginx-Replicas3nginx. 4) Menyebarkan perkhidmatan kompleks menggunakan dockerStackDeploy-cdocker-compose.ymlmyApp.

Bagaimana cara menggunakan Docker dan Kubernet untuk melaksanakan orkestrasi kontena aplikasi perusahaan? Melaksanakannya melalui langkah -langkah berikut: Buat imej Docker dan tolak ke DockerHub. Buat penempatan dan perkhidmatan di Kubernet untuk menggunakan aplikasi. Gunakan Ingress untuk menguruskan akses luaran. Memohon pengoptimuman prestasi dan amalan terbaik seperti pembinaan pelbagai peringkat dan kekangan sumber.

Soalan Lazim Docker boleh didiagnosis dan diselesaikan melalui langkah -langkah berikut: 1. Lihat status kontena dan log, 2. Periksa konfigurasi rangkaian, 3. Pastikan bahawa kelantangan dipasang dengan betul. Melalui kaedah ini, masalah di Docker boleh ditempatkan dengan cepat dan tetap, meningkatkan kestabilan sistem dan prestasi.

Docker adalah kemahiran yang mesti ada untuk jurutera DevOps. 1.Docker adalah platform kontena sumber terbuka yang mencapai pengasingan dan mudah alih dengan aplikasi pembungkusan dan kebergantungan mereka ke dalam bekas. 2. Docker bekerja dengan ruang nama, kumpulan kawalan dan sistem fail bersekutu. 3. Penggunaan asas termasuk mencipta, menjalankan dan menguruskan bekas. 4. Penggunaan lanjutan termasuk menggunakan DockerCompose untuk menguruskan aplikasi multi-kontainer. 5. Kesilapan umum termasuk kegagalan kontena, masalah pemetaan pelabuhan, dan masalah ketekunan data. Kemahiran penyahpepijatan termasuk log melihat, memasukkan bekas, dan melihat maklumat terperinci. 6. Pengoptimuman prestasi dan amalan terbaik termasuk pengoptimuman imej, kekangan sumber, pengoptimuman rangkaian dan amalan terbaik untuk menggunakan Dockerfile.

Kaedah Peningkatan Keselamatan Docker termasuk: 1. Gunakan parameter-cap-drop untuk menghadkan keupayaan Linux, 2. Buat bekas baca sahaja, 3 set tag Selinux. Strategi ini melindungi bekas dengan mengurangkan pendedahan kelemahan dan mengehadkan keupayaan penyerang.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver Mac版
Alat pembangunan web visual

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.