Doker

1.docker 是什么

Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的 Linux 或 Windows 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

docker 官方的解釋,看起來有點像我們之前用過的虛擬機,但是和虛擬機還是有些區(qū)別的:

虛擬機模擬的是整臺機器包括硬件,每臺虛擬機都有自己的操作系統(tǒng),虛擬機一旦開啟預分配給他的資源將全部占用。

容器與我們的宿主機共享硬件資源及操作系統(tǒng),可以實現(xiàn)資源動態(tài)分配,容器包含應(yīng)用及依賴包,而且與其他容器共享內(nèi)核。容器在宿主機操作系統(tǒng)中,在用戶空間以分離的進程運行。

這是引用網(wǎng)上的對容器和虛擬機區(qū)別的一些概述,以我個人的理解來看,容器比虛擬機可以管理的粒度更小,更適合我們作為日常開發(fā)及應(yīng)用的部署,而且比虛擬機更輕,對宿主機硬件的要求也更低。

2.docker 能用來做什么

如果站在 php 開發(fā)的角度來看的話,我相信大部分人都對更換開發(fā)機,部署服務(wù)器運行環(huán)境感到頭大,那意味著你將要耗費大量的時間,對應(yīng)用進行下載、安裝以及配置,一不小心幾個小時就過去了,尤其是如果在本地調(diào)試需要切換不同 PHP 版本進行程序調(diào)試。當然你可以選擇使用集成環(huán)境來進行部署,不過安裝之后的自定義配置、擴展的安裝還是免不了。(很久之前本地開發(fā)是使用 phpstudy 的,確實是很方便,不知道現(xiàn)在是不是有更好的工具)

那么 docker 可以很好的解決這個問題,我們可以把自己已經(jīng)構(gòu)建好的一套運行環(huán)境打包成鏡像,下次再使用的時候直接下載鏡像進行安裝即可使用,而且可以安裝不同的版本,滿足我們對任意環(huán)境的組合要求,看這個樣子是不是有點像我們安裝操作系統(tǒng)時直接從鏡像安裝一樣?差不多的道理, 只不過 docker 可以將鏡像封裝的粒度更細,可以將一個 php、nginx 或任意你想要的應(yīng)用封裝起來,這樣我們在使用的時候選擇性就更多一些。

3.幾個簡單的命令:

docker pull -- 從遠程倉庫將鏡像下載至本地

docker run -- 運行一個容器

docker exec -- 對鏡像進行操作,常用的就是我們進入到鏡像中進行配置 (有點像我們遠程登錄一個 linux 服務(wù)器)

上面三條指令就可以幫助我們搭建一個簡單容器進行使用,下面是幾條常用的??慈萜鞯拿睿?/p>

docker images -- ??幢镜冂R像

docker ps -- 查看容器,默認只查看已啟動的,加入 "-a" 參數(shù)可以查看所有

docker start|stop|rm|rmi -- 容器的相關(guān)操作,分別對應(yīng): 開啟 | 停止 | 刪除容器 | 刪除鏡像


4 下載一份 ubuntu 的最新鏡像 容器

docker pull ubuntu

4.1 運行容器指定鏡像

docker run ubuntu echo 'Hello'

可以看到命令行下方打印出‘Hello’字樣,然后我們使用?docker ps?命令查看并沒有我們剛才的那個容器,這是因為容器在執(zhí)行完 echo 命令后沒有其他的可執(zhí)行命令后就會退出,這怎么行?我們使用容器主要就是想讓他保持運行,所以我們需要想個辦法讓容器始終保持運行

4.2讓容器始終保持運行

docker run -itd --name test-ubuntu ubuntu

參數(shù)說明:

t - 讓 docker 分配一個偽終端并綁定到容器的標準輸入上

i - 讓容器的標準輸入保持打開

d - 讓容器后臺運行

name - 給容器命名,否則就是系統(tǒng)隨機生成的一個名字,不好記,這里我們給他命名叫:test-ubuntu

it?參數(shù)可以讓容器始終保持一個偽終端等待用戶的輸入,但是因為加了?d?參數(shù),使容器進入后臺執(zhí)行了,所以不會有人輸入到容器,這樣容器就一直保持運行了??梢允褂?docker ps?命令查看一下哦。

4.3進入容器

docker exec -it test-ubuntu /bin/bash

說明:使用?exec?指令,在容器名稱后的參數(shù)表示進入容器后執(zhí)行的命令,這里我們使用 base 命令處理器,以達到我們和容器交互的效果。

這樣我們就進入容器中了,可以看到基礎(chǔ)的鏡像中很多的命令都不存在,需要我們一一進行安裝,我這里使用的是 ubuntu,所以可以執(zhí)行 apt-get update && apt-get install xxx 來進行安裝。

到這里 docker 的基礎(chǔ)使用我們已經(jīng)介紹完了,下面我們來實戰(zhàn)一下,創(chuàng)建一個我們平時使用的 php 容器。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容