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

Apakah perbezaan antara arahan docker run dan docker exec?

青灯夜游
青灯夜游asal
2021-11-25 16:44:2910930semak imbas

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

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

    docker run -p 80:80 -v /data:/data -d nginx:latest

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

    docker run -it nginx:latest /bin/bash


    docker exec 命令

    语法

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

    OPTIONS说明:

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

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

    • -t分配一个伪终端

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

    docker exec -it my-nginx /bin/bash

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

    docker exec -it 721eb23901ce /bin/bash

    推荐学习:《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!

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