Jadual Kandungan
1. Docker
1 Pengenalan
2. Kelebihan Docker
3 Perbandingan antara Docker dan mesin maya
6
docker keluar dari bekas dan menutup bekas: exit
Gudang imej Docker
Hab Docker: https://hub.docker.comBuat gudang imej peribadi: docker run -d -p 5000:5000 registry
Format: MAINTAINER <name>
Contoh: " > ADD <src> ... <dest> Contoh:
Format: COPY<src> ... <dest> ;
CMD ["param1","param2"] ( Jika ENTRYPOINT ditetapkan, hubungi terus ENTRYPOINT untuk menambah parameter) CMD perintah param1 param2 (laksanakan arahan dalaman shell)" > CMD ["boleh laku","param1","param2"] (fail boleh laku boleh laku, keutamaan) CMD ["param1","param2"] ( Jika ENTRYPOINT ditetapkan, hubungi terus ENTRYPOINT untuk menambah parameter) CMD perintah param1 param2 (laksanakan arahan dalaman shell)
ENTRYPOINT command param1 param2 (shell internal command) " > ENTRYPOINT ["executable", "param1", "param2"] (executable file, priority) ENTRYPOINT command param1 param2 (shell internal command)
Port
EXPOSE 80/tcp EXPOSE 80 90
PENGGUNA: Tentukan run Nama pengguna atau UID bekas, dan RUN berikutnya juga akan menggunakan pengguna yang ditentukan.
5. Penjelasan terperinci mengenai Linux NameSpace
Penjelasan terperinci tentang NamesSpace:
Operasi biasa NameSpace
Pelapisan sistem fail, direktori dengan kebenaran baca sahaja boleh diubah suai secara logik Pengubahsuaian di sini adalah tambahan dan tidak menjejaskan bahagian baca sahaja
4 kesan
Tanya terbina- dalam mod Network docker
3 Simulasikan operasi Docker untuk memulakan jambatan rangkaian
Buat --net=none nginx
Cipta ruang nama rangkaian
Cipta pautan ruang nama rangkaian
Semak peranti jambatan yang sedang dibuat
Buat pasangan veth
untuk Konfigurasi rangkaian
Konfigurasikan rangkaian B
nginx boleh mengakses
Konfigurasikan nat supaya tingkap juga boleh mengakses melalui ip
Padamkan peraturan nat yang ditentukan selepas penggunaan
Rumah Operasi dan penyelenggaraan Docker Penguasaan teknologi teras Docker yang paling sistematik (perkongsian ringkasan)

Penguasaan teknologi teras Docker yang paling sistematik (perkongsian ringkasan)

Feb 04, 2022 am 07:00 AM
docker

Artikel ini membawakan anda beberapa soalan berkaitan tentang pengendalian kontena teknologi teras docker, penjelasan terperinci tentang Dockerfile, dll. Saya harap ia akan membantu anda.

Penguasaan teknologi teras Docker yang paling sistematik (perkongsian ringkasan)

1. Docker

1 Pengenalan

  • Teknologi Cgroup, Namespace dan Union FS berdasarkan kernel Linux, Proses pengekapan dan pengasingan ialah teknologi maya di peringkat sistem pengendalian Memandangkan proses terpencil adalah bebas daripada hos dan proses terpencil yang lain, ia dipanggil bekas
  • Pelaksanaan awal adalah berdasarkan LXC dialih keluar dari 0.7 dan seterusnya, gunakan Libcontainer yang dibangunkan sendiri Bermula dari 1.11, ia telah berkembang lagi untuk menggunakan runC dan Containerd
  • Docker telah merangkumkannya lagi berdasarkan bekas, dari sistem fail, rangkaian. sambungan kepada proses pengasingan, dsb. , yang sangat memudahkan penciptaan dan penyelenggaraan bekas, menjadikan teknologi Docker lebih ringan dan lebih pantas daripada teknologi mesin maya

2. Kelebihan Docker

  • Sumber Sistem digunakan dengan lebih cekap
  • Masa permulaan yang lebih pantas
  • Persekitaran operasi yang konsisten
  • Penghantaran dan penggunaan berterusan
  • Penghijrahan yang lebih mudah
  • Lebih mudah diselenggara dan kembangkan

3 Perbandingan antara Docker dan mesin maya

2

Rujuk artikel untuk pemasangan: Pasang Enjin Docker pada Ubuntu |. >

3 Operasi kontena

Mula:

larian docker:                                                                                                                                                                                                                                                                                                                                                                                                                                                          >

  • Mulakan bekas yang ditamatkan

permulaan buruh pelabuhan

Hentikan bekas

  • berhenti berlabuh

Lihat proses kontena

  • docker ps

Lihat butiran kontena

  • periksa docker

Salin fail ke bekas

  • docker cp file1 :/file_to_path

docker keluar dari bekas tanpa menutup bekas: ctrl q p

  • docker keluar dari bekas dan menutup bekas: exit

Soal semua imej docker

  • imej docker

  • Gudang imej Docker

  • Hab Docker: https://hub.docker.comBuat gudang imej peribadi: docker run -d -p 5000:5000 registry

  • 4. Fail Docker Penjelasan terperinci

Fail Docker biasanya dibahagikan kepada empat bahagian: maklumat imej asas, maklumat penyelenggaraan, arahan operasi imej dan arahan operasi permulaan kontena

Arahan biasa
  • DARI: Tentukan imej asas, yang mesti menjadi arahan pertama

Format:

DARI

DARI :

DARI ubuntu

PENYELENGGARA: Maklumat penyelenggaraan

Format: MAINTAINER

Contoh reben MAINTAINER

RUN: Perintah dilaksanakan semasa membina imej

Format:

Pelaksanaan Shell: RUN

Perlaksanaan: RUN ["executable", "param1", "param2"]

Contoh:

RUN apk update

RUN ["/etc/execfile" , "arg1", "arg2"]

RUN apt-get update && apt Kedua-dua arahan -get install sentiasa disambungkan dengan &&, jika tidak lapisan binaan kemas kini apt-get akan dicache, yang akan menyebabkan pakej baharu gagal dipasang

TAMBAH: Tambahkan fail setempat pada bekas, tar dan jenis lain

akan dinyahmampat secara automatik dan boleh mengakses sumber rangkaian, serupa dengan wget format:

ADD ... Contoh:

ADD bin/amd64/httpserver /httpserver

COPY: Fungsi ini serupa dengan ADD, tetapi ia tidak akan menyahmampat fail dan tidak boleh mengakses sumber rangkaian

Gunakan berbilang peringkat dalam Dockerfile: berbilang peringkat dalam Dockerfile (berbilang peringkat build) - sparkdev - Blog Park

Format: COPY ...

Contoh:

COPYbin/amd64/ httpserver /httpserver

CMD: Dipanggil selepas bekas dibina, iaitu ia dipanggil hanya apabila bekas bermula

Format:

CMD ["boleh laku","param1","param2"] (fail boleh laku boleh laku, keutamaan) CMD ["param1","param2"] ( Jika ENTRYPOINT ditetapkan, hubungi terus ENTRYPOINT untuk menambah parameter) CMD perintah param1 param2 (laksanakan arahan dalaman shell)

Contoh:

CMD ["ethtool", "--help"]

CMD echo "1111"

ENTRTPOINT: Konfigurasikan bekas untuk menjadikannya boleh laku

.

Format:

ENTRYPOINT ["executable", "param1", "param2"] (executable file, priority) ENTRYPOINT command param1 param2 (shell internal command)

Contoh:

ENTRYPOINT /httpserver


CMD [-c]

LABAL: Digunakan untuk menambah data sumber pada imej

Format:

LABEL = == 🎜> LABEL multi.label1="value1" multi.label2="value2" other="value3"

ENV: Tetapkan pembolehubah persekitaran

Format:

ENV

Contoh:

Port

Format:

DEDAH < port> [...]

Contoh:

EXPOSE 80

EXPOSE 80/tcp EXPOSE 80 90

VOLUME: digunakan untuk menentukan direktori kegigihan

Format:

VOLUME []

Contoh:

JILID ["/data", "/usr1/jenkins"]

PENGGUNA: Tentukan run Nama pengguna atau UID bekas, dan RUN berikutnya juga akan menggunakan pengguna yang ditentukan.

Format:

PENGGUNA pengguna

PENGGUNA pengguna:kumpulan

PENGGUNA uid

PENGGUNA uid:gid

PENGGUNA pengguna:gid

PENGGUNA uid:kumpulan

Contoh: PENGGUNA www

ARG: Digunakan untuk menentukan pembolehubah yang dihantar ke masa jalan binaan


Format:
ARG < ;[=]
Contoh:
ARG build_user=ribbon


5. Penjelasan terperinci mengenai Linux NameSpace

  • Penjelasan terperinci tentang NamesSpace:

Linux NameSpace_Frank_Abagnale's Blog-CSDN Blog Artikel ini menyediakan lebih banyak lagi pengenalan terperinci, Anda boleh merujuk artikel ini

  • Operasi biasa NameSpace

  • Lihat ruang nama sistem semasa:

lsns -t

  • Lihat ruang nama proses:

ls -la /proc//ns/

  • Lihat arahan berjalan ruang nama

nsenter -t -n

6

Penjelasan terperinci Cgroups
  • Teras Kontena: cgroups - Buku Ringkas Anda boleh merujuk artikel ini untuk mengetahui lebih lanjut

Simulasikan Cgroups untuk kawal sumber CPU
  • Pass Simulate untuk membiasakan diri dengan lebih baik dengan kesan Cgroups mengawal sumber mula-mula buat folder cpudemo

dan. laksanakan atas. Anda dapat melihat bahawa busyloop menggunakan dua sumber CPU

Tambahkan proses pada kumpulan konfigurasi proses cgroup

Tetapkan cpuquota

Anda boleh lihat kejayaan akan menduduki 200% Sumber CPU dikurangkan kepada 1%

Simulasi Cgroup yang melebihi had sumber memori dan dibunuh oleh OOM
  • / Cipta folder memorydemo dalam direktori sys/fs/cgroup/memory

Jalankan program yang menggunakan memori dan gunakan jam tangan untuk menanyakan penggunaan memori

Konfigurasikan proses ke dalam konfigurasi cgroups kumpulan

Tetapkan saiz memori maksimum

Tunggu program Killed by OOM, dmesg boleh lihat maklumat bunuh

Nota: Untuk memadamkan folder cgroup yang dibuat sendiri, anda perlu menggunakan cgroup-tools

7. Union FS

Teknologi yang digunakan oleh Docker semuanya berasal daripada teknologi Linux dan Tiada inovasi, dan inovasi Docker ialah sistem fail.

1 🎜>

Pelapisan sistem fail, direktori dengan kebenaran baca sahaja boleh diubah suai secara logik Pengubahsuaian di sini adalah tambahan dan tidak menjejaskan bahagian baca sahaja

    Kegunaan Union FS yang biasa: Berbilang cakera dipasang pada direktori yang sama. , dan satu lagi adalah untuk menggabungkan bahagian baca sahaja dan direktori boleh tulis
  • 2 Ilustrasi Union FS
  • Dalam reka bentuk imej Docker, Konsep lapisan diperkenalkan, maksudnya, setiap langkah operasi pengguna untuk mencipta imej akan menghasilkan lapisan, iaitu, rootfs tambahan (direktori), supaya bekas di mana aplikasi A dan aplikasi B terletak secara bersama merujuk sama Operasi ubuntu lapisan sistem dan lapisan persekitaran Golang (sebagai lapisan baca sahaja) masing-masing mempunyai lapisan aplikasi dan lapisan boleh tulis sendiri. Apabila memulakan bekas, lekapkan lapisan yang berkaitan ke direktori melalui UnionFS sebagai sistem fail akar bekas.

3. Pemacu storan kontena

4 kesan

Memandangkan versi semasa docker menggunakan pemacu storan overlayFS, kami menggunakan kaedah pemasangan tindanan

untuk menjalankan eksperimen melalui tiga direktori: Direktori bawah. direktori atas, dan direktori kerja dilaksanakan. Mungkin terdapat beberapa direktori yang lebih rendah Direktori kerja ialah direktori kerja asas pemasangan selesai Pandangan bersatu yang dibentangkan kepada pengguna dipanggil direktori gabungan.


Laksanakan arahan berikut:

Anda boleh melihat bahawa fail pemacu storan tindanan dipasang mencapai kesan. Selepas percubaan selesai, untuk memulihkan persekitaran, anda perlu umount direktori yang digabungkan terlebih dahulu, dan kemudian padamkan empat direktori Jika anda memadam yang lain dahulu, rm: tidak boleh mengalih keluar 'digabungkan/': Peranti atau sumber sibuk mungkin muncul. mengakibatkan direktori yang digabungkan tidak dipadamkan.

mkdir upper lower merged work
echo "lower" > lower/in_lower.txt
echo "from lower" > lower/in_both.txt
echo "from upper" > upper/in_both.txt
echo "upper" > upper/in_upper.txt
path=$(pwd)
mount -t overlay overlay -o lowerdir=${path}/lower,upperdir=${path}/upper,workdir=${path}/work ${path}/merged
Salin selepas log masuk
8. Rangkaian Docker

1. Alat pemasangan

Sistem Centos:

$ yum install bridge-utils

Sistem Ubuntu:

$ apt-get install bridge-utils

2 mod rangkaian Docker

Tanya terbina- dalam mod Network docker

  • docker run memilih mod rangkaian untuk dijalankan

1) Mod hos: Tentukan menggunakan --net=host. Kongsi satu set jaringan dengan hos

2) mod tiada: gunakan --net =tiada dinyatakan. Konfigurasi rangkaian perlu dikonfigurasikan sendiri

3) Mod jambatan: Gunakan --net=bridge untuk menentukan, tetapan lalai .

rajah logik rangkaian docker, jambatan dan NAT

4) Mod bekas: Gunakan --net=container:NAME_or_ID untuk menentukan. Menggunakan konfigurasi rangkaian bekas lain

Gambar rajah mod rangkaian adalah secara kasar seperti yang ditunjukkan di bawah

3 Simulasikan operasi Docker untuk memulakan jambatan rangkaian

  • Buat --net=none nginx

  • Cipta ruang nama rangkaian

  • Cipta pautan ruang nama rangkaian

  • Semak peranti jambatan yang sedang dibuat

  • Buat pasangan veth

  • untuk Konfigurasi rangkaian

  • Konfigurasikan rangkaian B

Jana peranti rangkaian eth0 dalam nginx docker Konfigurasikan ip gateway untuk eth0 dalam

  • nginx boleh mengakses

  • Konfigurasikan nat supaya tingkap juga boleh mengakses melalui ip

  • Padamkan peraturan nat yang ditentukan selepas penggunaan

Pembelajaran yang disyorkan: "tutorial video buruh pelabuhan"

Atas ialah kandungan terperinci Penguasaan teknologi teras Docker yang paling sistematik (perkongsian ringkasan). 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
3 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)

Bagaimana untuk membungkus projek dengan pycharm Bagaimana untuk membungkus projek dengan pycharm Apr 25, 2024 am 03:54 AM

Terdapat empat cara untuk membungkus projek dalam PyCharm: Pakej sebagai fail boleh laku yang berasingan: Eksport ke format fail tunggal EXE. Dibungkus sebagai pemasang: Jana Setuptools Makefile dan bina. Pakej sebagai imej Docker: tentukan nama imej, laraskan pilihan binaan dan bina. Pakej sebagai bekas: Tentukan imej untuk dibina, laraskan pilihan masa jalan dan mulakan bekas.

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.

See all articles