docker下entrypoint和cmd的区别是什么?
docker下entrypoint和cmd的区别是:1、CMD指令运行一个可执行的文件并提供参数,可以为ENTRYPOINT指定参数;2、ENTRYPOINT指令本身也可以包含参数,变动的参数不会被覆盖。
docker下entrypoint和cmd的区别是:
1、CMD指令:
CMD在容器运行的时候提供一些命令及参数,用法如下:
CMD ["executable","param1","param2"] (exec form, this is the preferred form)
CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
CMD command param1 param2 (shell form)
第一种用法:运行一个可执行的文件并提供参数。
第二种用法:为ENTRYPOINT指定参数。
第三种用法(shell form):是以”/bin/sh -c”的方法执行的命令。
如你指定:
CMD [“/bin/echo”, “this is a echo test ”]
build后运行(假设镜像名为ec):
docker run ec
就会输出:
this is a echo test
是不是感觉很像开机启动项,你可以暂时这样理解。
注意点:
docker run
命令如果指定了参数会把CMD里的参数覆盖: (这里说明一下,如:docker run -it ubuntu /bin/bash 命令的参数是指/bin/bash 而非 -it ,-it
只是docker 的参数,而不是容器的参数,以下所说参数均如此。)
同样是上面的ec镜像启动:
docker run ec /bin/bash
就不会输出:
this is a echo test
因为CMD命令被”/bin/bash”覆盖了。
2、ENTRYPOINT指令
字面意思是进入点,而它的功能也恰如其意。它可以让你的容器功能表现得像一个可执行程序一样。
容器功能表现得像一个可执行程序一样,这是什么意思呢?
直接给个例子好说话:
例子一:
使用下面的ENTRYPOINT构造镜像:
ENTRYPOINT ["/bin/echo"]
那么docker build出来的镜像以后的容器功能就像一个/bin/echo程序:
比如我build出来的镜像名称叫imageecho,那么我可以这样用它:
docker run -it imageecho “this is a test”
这里就会输出”this is a test”这串字符,而这个imageecho镜像对应的容器表现出来的功能就像一个echo程序一样。 你添加的参数“this is a test”会添加到ENTRYPOINT后面,就成了这样 /bin/echo “this is a test” 。现在你应该明白进入点的意思了吧。
例子二:
ENTRYPOINT ["/bin/cat"]
构造出来的镜像你可以这样运行(假设名为st):
docker run -it st /etc/fstab
这样相当: /bin/cat /etc/fstab
这个命令的作用。运行之后就输出/etc/fstab
里的内容。
ENTRYPOINT有两种写法:
写法一:
ENTRYPOINT ["executable", "param1", "param2"] (the preferred exec form)
写法二:
ENTRYPOINT command param1 param2 (shell form)
你也可以在docker run 命令时使用–entrypoint指定(但是只能用写法一)。
下面是我把ENTRYPOINT设为[“/bin/sh -c”]时候运行的情况:
linux-oj9e:/home/lfly/project/docker # docker run -it t2 /bin/bash
root@4c8549e7ce3e:/# ps
PID TTY TIME CMD
1 ? 00:00:00 sh
9 ? 00:00:00 bash
19 ? 00:00:00 ps
可以看到PID为1的进程运行的是sh,而bash只是sh的一个子进程,/bin/bash
只是作为 /bin/sh -c
后面的参数。
CMD可以为ENTRYPOINT提供参数,ENTRYPOINT本身也可以包含参数,但是你可以把那些可能需要变动的参数写到CMD里而把那些不需要变动的参数写到ENTRYPOINT里面例如:
FROM ubuntu:14.10 ENTRYPOINT ["top", "-b"] CMD ["-c"]
把可能需要变动的参数写到CMD里面。然后你可以在docker run里指定参数,这样CMD里的参数(这里是-c)就会被覆盖掉而ENTRYPOINT里的不被覆盖。
相关教程推荐:docker教程
Atas ialah kandungan terperinci docker下entrypoint和cmd的区别是什么?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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.

Masukkan arahan berikut dalam gesaan arahan pentadbir untuk mematikan manage-bde-offC: Tetapi kadangkala gesaan berikut muncul: Ralat - Kelantangan ini menyimpan satu atau lebih kekunci luaran yang boleh membuka kunci volum lain secara automatik. Kekunci jenis ini mesti dipadamkan dahulu sebelum volum ini boleh dibuka kuncinya. Pada masa ini, anda perlu melaksanakan arahan berikut terlebih dahulu: (Jika partition sistem bukan C, tukar huruf pemacu di bawah) manage-bde-autounlock-ClearAllKeysc: Ralat 2: Operasi ini tidak boleh dilakukan kerana kelantangan dikunci. urus-bde-unlockc:-rp123456789012345678901234567890123456789012345678 Nota:

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

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.

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

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.

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

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.
