docker run 跟 docker exec 經常讓 docker 的初學者感到困惑,因為用起來感覺都很像,不知道什麼時候該用哪一個,也不知道兩者有什麼差別。
如果簡單來說的話,其實兩個最大的差別是,一個啟動新的容器,一個使用正在運行中的容器。
來比較官方文件上對於兩者的說明:
docker run
: Run a command in a new container
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker exec
: Run a command in a running container
$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
可以看到 run
使用的參數是 image name
,而 exec
是 container name
。