Rumah > Operasi dan penyelenggaraan > Docker > Apakah perbezaan antara arahan docker run dan docker exec?

Apakah perbezaan antara arahan docker run dan docker exec?

青灯夜游
Lepaskan: 2021-11-25 19:40:34
asal
11107 orang telah melayarinya

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.

Apakah perbezaan antara arahan docker run dan docker exec?

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

Perbezaan antara docker run dan docker exec


docker run: Buat bekas berdasarkan imej dan jalankannya Arahan, objek operasi ialah imej; > dalam bekas yang sedang berjalan Untuk melaksanakan arahan, objek operasi ialah

bekas

. "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

Sintaks

penerangan PILIHAN:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Salin selepas log masuk
-a stdin

:

menentukan jenis kandungan input dan output standard, STDIN/STDOUT/STDERR pilihan
  • -d:

    menjalankan bekas di latar belakang dan mengembalikan ID kontena;
  • Jalankan bekas dalam mod interaktif, biasanya digunakan dengan -t;
  • -P

    :
  • Pemetaan port rawak, port dalaman kontena
  • 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;

  • --dns 8.8.8.8
  • :

    Tentukan pelayan DNS digunakan oleh bekas, lalainya ialah Hos adalah konsisten;

  • --dns-search example.com
  • :

    Menentukan DNS bekas cari nama domain, yang konsisten dengan hos secara lalai;

    -h "mars"
  • :
  • menentukan nama hos bekas;

    -e username="ritchie"
  • :
  • Tetapkan pembolehubah persekitaran; >

    --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::

  • Tambahkan pautan ke bekas lain;
  • --expose=[]

    :
  • Buka port atau sekumpulan port;
  • --volume, -v

    :
  • Ikat kelantangan
  • Instance

  • Gunakan imej docker nginx:latest to backend mod untuk memulakan bekas dan namakan bekas my-nginx.
  • 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:

    docker run -P -d nginx:latest
    Salin selepas log masuk

    使用镜像 nginx:latest 以后台模式启动一个容器,将主机的 80 端口映射到容器的 80 端口,主机的目录 /data 映射到容器的 /data:

    docker run -p 80:80 -v /data:/data -d nginx:latest
    Salin selepas log masuk

    使用镜像 nginx:latest 以交互模式启动一个容器,在容器内执行/bin/bash命令:

    docker run -it nginx:latest /bin/bash
    Salin selepas log masuk


    docker exec 命令

    语法

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    Salin selepas log masuk

    OPTIONS说明:

    • -d : 分离模式: 在后台运行

    • -i : 即使没有附加也保持STDIN 打开

    • -t : 分配一个伪终端

    在容器名称 my-nginx 中开启一个交互模式的终端:

    docker exec -it my-nginx /bin/bash
    Salin selepas log masuk

    或者使用容器ID 721eb23901ce 开启一个交互模式的终端:

    docker exec -it 721eb23901ce /bin/bash
    Salin selepas log masuk

    推荐学习:《docker视频教程

    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!

Label berkaitan:
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
Isu terkini
Gunakan persekitaran snmp dalam docker
daripada 1970-01-01 08:00:00
0
0
0
Panggilan API merentas bekas Docker
daripada 1970-01-01 08:00:00
0
0
0
docker: format rujukan tidak sah
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan