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 start指令來啟動該容器
這種分離的建立和啟動過程可以為我們提供更多的靈活性和控制權,因為我們可以在容器建立後,根據需要對其進行更改或配置。
docker run
docker run可以建立并運作一個新的容器,文法如下:
bash複制代碼docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
注: 跟 docker create 一樣的文法格式,隻不過可以運作容器甚至進入容器内部
COMMAND :需要在容器内執行的指令
執行流程
- 首先在指定鏡像上建立一個可寫的容器層
- 然後使用指定的指令(COMMAND)啟動它
- 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 run"指令用于建立并啟動一個新的容器,而"docker create"指令僅用于建立容器,而不會自動啟動它。使用"docker create"可以在容器建立後對其進行更多的配置或修改,然後使用"docker start"來手動啟動容器。
擷取更多技術資料,請點選!> 霍格沃茲測試開發學社|免費學習資料大放送,助你事半功倍! - 霍格沃茲測試開發學社 - 測試人社群