天天看點

軟體測試|docker create 與 docker run的異同,你都會了嗎?

作者:測試者穆勒
軟體測試|docker create 與 docker run的異同,你都會了嗎?

Docker Run vs Docker Create:建立和管理容器的差異

Docker是一種流行的容器化平台,它提供了多種指令來建立和管理容器。其中兩個常用的指令是"docker run"和"docker create"。雖然它們都用于建立容器,但在用法和功能上有一些差別。讓我們來看看它們之間的差異。

擷取更多技術資料,請點選!> 霍格沃茲測試開發學社|免費學習資料大放送,助你事半功倍! - 霍格沃茲測試開發學社 - 測試人社群

docker create

docker create可以建立一個新的容器,但是這個容器不會被啟動,文法如下:

bash複制代碼docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
           

options 說明:

option 作用
--name 指定容器的名字

使用示例

根據 mysql 鏡像,建立一個hogwarts_mysql容器

bash複制代碼docker create --name=hogwarts_mysql mysql
           
軟體測試|docker create 與 docker run的異同,你都會了嗎?

注:如果我們要啟動該容器,我們可以使用docker start指令來啟動該容器

這種分離的建立和啟動過程可以為我們提供更多的靈活性和控制權,因為我們可以在容器建立後,根據需要對其進行更改或配置。

docker run

docker run可以建立并運作一個新的容器,文法如下:

bash複制代碼docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
           

注: 跟 docker create 一樣的文法格式,隻不過可以運作容器甚至進入容器内部

COMMAND :需要在容器内執行的指令

執行流程

  1. 首先在指定鏡像上建立一個可寫的容器層
  2. 然後使用指定的指令(COMMAND)啟動它
  3. docker run 相當于執行了兩個 操作:/containers/create、/containers/(id)/start

常用options參數

option 作用
-i 以互動模式運作容器,通常與 -t 同時使用
-t 啟動容器後,為容器配置設定一個指令行,通常與 -i 同時使用
-v 目錄映射,容器目錄挂載到主控端目錄,格式: <host目錄>:<容器目錄>
-d
守護程序,背景運作該容器
-p 指定端口映射,格式:主機(宿主)端口:容器端口
-P 随機端口映射,容器内部端口随機映射到主機的端口
-u 以什麼使用者身份建立容器
--name "nginx-lb" 容器名字
-m, --memory bytes 設定容器使用記憶體最大值
-h, --hostname string 指定容器的 host name
--dns 8.8.8.8 指定容器 dns 伺服器
-e username="ritchie" 設定環境變量
--restar t Docker 重新開機後,容器是否自動重新開機
--privileged 容器内是否使用真正的 root 權限

-p 的寫法

bash複制代碼docker run -p ip:主機端口:容器端口
docker run -p 主機端口:容器端口 (常用) 
docker run -p 容器端口
           

使用示例:

bash複制代碼docker run --name muller_mysql mysql
           
軟體測試|docker create 與 docker run的異同,你都會了嗎?

總結

"docker run"指令用于建立并啟動一個新的容器,而"docker create"指令僅用于建立容器,而不會自動啟動它。使用"docker create"可以在容器建立後對其進行更多的配置或修改,然後使用"docker start"來手動啟動容器。

擷取更多技術資料,請點選!> 霍格沃茲測試開發學社|免費學習資料大放送,助你事半功倍! - 霍格沃茲測試開發學社 - 測試人社群