1. Docker是什么?
Docker是一種開源的容器化平臺,能夠?qū)?strong>應用程序和開發(fā)環(huán)境依賴打包到容器中,從而實現(xiàn)在不同環(huán)境的服務(wù)器上快速部署和運行。
2. Docker和虛擬機的區(qū)別?
- Docker不包含虛擬操作系統(tǒng),不需要引導操作系統(tǒng)內(nèi)核,因此啟動快、資源占用少、體積小、部署簡單。(更輕量)
- 服務(wù)組合:采用容器的方式進行部署,整個系統(tǒng)會變得易于組合,通過容器技術(shù)將不同服務(wù)封裝在對應的容器中,之后結(jié)合一些腳本使這些容器按照要求相互協(xié)作,這樣操作不僅可以簡化部署難度還可以降低操作風險。
- 易于遷移:容器技術(shù)最重要的價值就是為在不同主機上運行服務(wù)提供一個輕便的、一致的格式。容器格式的標準化加快交付體驗,允許用戶方便地對工作負載進行遷移,避免局限于單一的平臺提供商。
虛擬化:使得多個操作系統(tǒng)可同時運行在單個系統(tǒng)上。
Docker:則可共享同一個操作系統(tǒng)的內(nèi)核,將應用程序與系統(tǒng)其它部分隔離開。
3. Docker鏡像和Docker容器分別是什么?
Docker 鏡像是一個靜態(tài)的文件,它包含了應用程序及其依賴項的文件系統(tǒng)、庫、配置等。
Docker 容器則是運行時對象,它基于鏡像啟動,并包含了應用程序的運行狀態(tài)、網(wǎng)絡(luò)連接等信息。因此,可以認為容器是鏡像的實例化。
4. Dockerfile 是什么?
Dockerfile 是 Docker 用來構(gòu)建鏡像的腳本。它定義了鏡像構(gòu)建過程中需要執(zhí)行的步驟,例如安裝軟件、復制文件等。通過編寫 Dockerfile,可以實現(xiàn)自動化的鏡像構(gòu)建和部署。
FROM:指定基礎(chǔ)鏡像
LABLE:為鏡像指定標簽
RUN:容器啟動時要運行的命令
5. Docker Hub 是什么?
Docker Hub 是一個公共的 Docker 鏡像倉庫,用戶可以在其中分享和下載 Docker 鏡像。它還提供了一些其他功能,例如自動構(gòu)建、訪問控制等。
6. Docker常用操作
6.1 構(gòu)建
可以通過編寫 Dockerfile 來定義鏡像的構(gòu)建過程,然后使用 docker build 命令來構(gòu)建鏡像。例如,可以使用以下命令來構(gòu)建名為 myimage 的鏡像
$ docker build -t myimage .
6.2 拉取鏡像
$ docker pull ubuntu
6.3 啟動鏡像
$ docker run -it ubuntu /bin/bash
6.4 查看所有正在運行的容器
$ docker ps -a
6.5 停止容器
$ docker stop <容器 ID>
6.6 啟動停止的容器
$ docker start <容器 ID>
6.7 重新啟動容器
$ docker restart <容器 ID>
6.8 查看容器狀態(tài)
$ docker top //查看容器中的進程
$ docker stats //查詢?nèi)萜鞯母黜椯Y源的消耗情況
6.9 進入容器
$ docker exec -it <容器 ID> /bin/bash
6.10 刪除容器
$ docker rm -f <容器 ID>