Rumah >Operasi dan penyelenggaraan >Docker >Apakah perbezaan antara arahan docker run dan docker exec?
Perbezaan: 1. Objek operasi "docker run" ialah "mirror", manakala objek operasi "docker exec" ialah "container"; 2. "docker run" sesuai untuk situasi di mana tiada bekas sedang berjalan dan "docker exec" sesuai untuk menjalankan arahan dalam bekas sedia ada.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi docker-1.13.1, komputer Dell G3.
docker run: Buat bekas berdasarkan imej dan jalankannya Arahan, objek operasi ialah imej; > dalam bekas yang sedang berjalan Untuk melaksanakan arahan, objek operasi ialah
. "docker run" biasanya arahan yang digunakan dalam bekas yang baru dibuat. Ia sesuai untuk situasi di mana anda tidak mempunyai bekas yang sedang berjalan dan anda ingin mencipta bekas, mulakannya, dan kemudian jalankan proses padanya. "docker exec" berguna apabila menjalankan arahan dalam bekas sedia ada. Jika anda sudah mempunyai bekas yang sedang berjalan dan ingin menukarnya atau mendapatkan sesuatu daripadanya, maka menggunakan arahan "docker exec" adalah sempurna.
perintah larian docker Sintaksdocker run [OPTIONS] IMAGE [COMMAND] [ARG...]-a stdin
:
menentukan jenis kandungan input dan output standard, STDIN/STDOUT/STDERR pilihan-d:
menjalankan bekas di latar belakang dan mengembalikan ID kontena;-P
:Secara rawak dipetakan ke port tinggi hos
-p: Nyatakan pemetaan port dalam format :Port hos (hos):Port kontena
-t : Menetapkan semula terminal input pseudo kepada bekas, biasanya digunakan dengan -i; " : Nyatakan nama untuk bekas;
Tentukan pelayan DNS digunakan oleh bekas, lalainya ialah Hos adalah konsisten;
Menentukan DNS bekas cari nama domain, yang konsisten dengan hos secara lalai;
-h "mars"-e username="ritchie"
--env-file=[]: Baca pembolehubah persekitaran daripada fail yang ditentukan; 0-2" atau --cpuset="0,1,2": Ikat bekas pada CPU yang ditentukan untuk dijalankan;
-m :Tetapkan penggunaan memori maksimum bagi bekas; > Menentukan jenis sambungan rangkaian bekas, menyokong bridge/host/none/container:
--expose=[]
:--volume, -v
:Instance
Penyemak imbas mengakses http://host IP:8081, kesannya adalah seperti berikut:
Gunakan mirror nginx:latest memulakan bekas dalam mod latar belakang dan memetakan port kontena 80 ke port rawak pada hos: 使用镜像 nginx:latest 以后台模式启动一个容器,将主机的 80 端口映射到容器的 80 端口,主机的目录 /data 映射到容器的 /data: 使用镜像 nginx:latest 以交互模式启动一个容器,在容器内执行/bin/bash命令: OPTIONS说明: -d : 分离模式: 在后台运行 -i : 即使没有附加也保持STDIN 打开 -t : 分配一个伪终端 在容器名称 my-nginx 中开启一个交互模式的终端: 或者使用容器ID 721eb23901ce 开启一个交互模式的终端: 推荐学习:《docker视频教程》docker run -P -d nginx:latest
docker run -p 80:80 -v /data:/data -d nginx:latest
docker run -it nginx:latest /bin/bash
docker exec 命令
语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec -it my-nginx /bin/bash
docker exec -it 721eb23901ce /bin/bash
Atas ialah kandungan terperinci Apakah perbezaan antara arahan docker run dan docker exec?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!