1. Docker是什么隘道?
Docker是一種開源的容器化平臺(tái),能夠?qū)?strong>應(yīng)用程序和開發(fā)環(huán)境依賴打包到容器中郎笆,從而實(shí)現(xiàn)在不同環(huán)境的服務(wù)器上快速部署和運(yùn)行谭梗。
2. Docker和虛擬機(jī)的區(qū)別?
- Docker不包含虛擬操作系統(tǒng)宛蚓,不需要引導(dǎo)操作系統(tǒng)內(nèi)核激捏,因此啟動(dòng)快、資源占用少凄吏、體積小远舅、部署簡(jiǎn)單闰蛔。(更輕量)
- 服務(wù)組合:采用容器的方式進(jìn)行部署,整個(gè)系統(tǒng)會(huì)變得易于組合图柏,通過容器技術(shù)將不同服務(wù)封裝在對(duì)應(yīng)的容器中序六,之后結(jié)合一些腳本使這些容器按照要求相互協(xié)作,這樣操作不僅可以簡(jiǎn)化部署難度還可以降低操作風(fēng)險(xiǎn)蚤吹。
- 易于遷移:容器技術(shù)最重要的價(jià)值就是為在不同主機(jī)上運(yùn)行服務(wù)提供一個(gè)輕便的例诀、一致的格式。容器格式的標(biāo)準(zhǔn)化加快交付體驗(yàn)裁着,允許用戶方便地對(duì)工作負(fù)載進(jìn)行遷移繁涂,避免局限于單一的平臺(tái)提供商。
虛擬化:使得多個(gè)操作系統(tǒng)可同時(shí)運(yùn)行在單個(gè)系統(tǒng)上二驰。
Docker:則可共享同一個(gè)操作系統(tǒng)的內(nèi)核扔罪,將應(yīng)用程序與系統(tǒng)其它部分隔離開。
3. Docker鏡像和Docker容器分別是什么诸蚕?
Docker 鏡像是一個(gè)靜態(tài)的文件步势,它包含了應(yīng)用程序及其依賴項(xiàng)的文件系統(tǒng)、庫(kù)背犯、配置等坏瘩。
Docker 容器則是運(yùn)行時(shí)對(duì)象,它基于鏡像啟動(dòng)漠魏,并包含了應(yīng)用程序的運(yùn)行狀態(tài)倔矾、網(wǎng)絡(luò)連接等信息。因此柱锹,可以認(rèn)為容器是鏡像的實(shí)例化哪自。
4. Dockerfile 是什么?
Dockerfile 是 Docker 用來構(gòu)建鏡像的腳本禁熏。它定義了鏡像構(gòu)建過程中需要執(zhí)行的步驟壤巷,例如安裝軟件、復(fù)制文件等瞧毙。通過編寫 Dockerfile胧华,可以實(shí)現(xiàn)自動(dòng)化的鏡像構(gòu)建和部署。
FROM:指定基礎(chǔ)鏡像
LABLE:為鏡像指定標(biāo)簽
RUN:容器啟動(dòng)時(shí)要運(yùn)行的命令
5. Docker Hub 是什么宙彪?
Docker Hub 是一個(gè)公共的 Docker 鏡像倉(cāng)庫(kù)矩动,用戶可以在其中分享和下載 Docker 鏡像。它還提供了一些其他功能释漆,例如自動(dòng)構(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 啟動(dòng)鏡像
$ docker run -it ubuntu /bin/bash
6.4 查看所有正在運(yùn)行的容器
$ docker ps -a
6.5 停止容器
$ docker stop <容器 ID>
6.6 啟動(dòng)停止的容器
$ docker start <容器 ID>
6.7 重新啟動(dòng)容器
$ docker restart <容器 ID>
6.8 查看容器狀態(tài)
$ docker top //查看容器中的進(jìn)程
$ docker stats //查詢?nèi)萜鞯母黜?xiàng)資源的消耗情況
6.9 進(jìn)入容器
$ docker exec -it <容器 ID> /bin/bash
6.10 刪除容器
$ docker rm -f <容器 ID>