docker基础知识
Docker 是一個(gè)能夠把開發(fā)應(yīng)用程序自動(dòng)部署到容器的開源引擎。Docker 項(xiàng)目的目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案。 Docker 的基礎(chǔ)是 Linux 容器(LXC)等技術(shù),它提供了一個(gè)簡(jiǎn)單、輕量的建模方式,使開發(fā)生命周期更高效快速,鼓勵(lì)了面向服務(wù)的架構(gòu)設(shè)計(jì)。在 LXC 的基礎(chǔ)上 Docker 進(jìn)行了進(jìn)一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡(jiǎn)便。用戶操作 Docker 的容器就像操作一個(gè)快速輕量級(jí)的虛擬機(jī)一樣簡(jiǎn)單。:
Docker 容器本質(zhì)上是宿主機(jī)上的一個(gè)進(jìn)程。Docker 通過 namespace 實(shí)現(xiàn)了資源隔離,通過 cgroups 實(shí)現(xiàn)了資源的限制,通過寫時(shí)復(fù)制機(jī)制(copy-on-write)實(shí)現(xiàn)了高效的文件操作。
Docker有五個(gè)命名空間:進(jìn)程、網(wǎng)絡(luò)、掛載、宿主和共享內(nèi)存,為了隔離有問題的應(yīng)用,Docker運(yùn)用Namespace將進(jìn)程隔離,為進(jìn)程或進(jìn)程組創(chuàng)建已隔離的運(yùn)行空間,為進(jìn)程提供不同的命名空間視圖。這樣,每一個(gè)隔離出來的進(jìn)程組,對(duì)外就表現(xiàn)為一個(gè)container(容器)。需要注意的是,Docker讓用戶誤以為自己占據(jù)了全部資源,但這并不是”虛擬機(jī)”。
安裝
DockerHub可以注冊(cè)賬號(hào)
docker可以在運(yùn)行在window、mac、linux平臺(tái),并都有自己的客戶端進(jìn)行管理。注意要配置國(guó)內(nèi)鏡像加速
文檔
docker官網(wǎng)文檔寫的很詳細(xì),還有Docker菜鳥教程
play with docker是一個(gè)在線學(xué)習(xí)使用docker的網(wǎng)頁(yè),每次可以免費(fèi)使用4個(gè)小時(shí),在里面可以盡情嘗試使用docker的命令。
docker術(shù)語(yǔ)
1.鏡像(image):Docker 鏡像就是一個(gè)只讀的模板,鏡像可以用來創(chuàng)建 Docker 容器。Docker 提供了一個(gè)很簡(jiǎn)單的機(jī)制來創(chuàng)建鏡像或者更新現(xiàn)有的鏡像,用戶甚至可以直接從其他人那里下載一個(gè)已經(jīng)做好的鏡像來直接使用。
鏡像是一種文件結(jié)構(gòu)。Dockerfile中的每條命令都會(huì)在文件系統(tǒng)中創(chuàng)建一個(gè)新的層次結(jié)構(gòu),文件系統(tǒng)在這些層次上構(gòu)建起來,鏡像就構(gòu)建于這些聯(lián)合的文件系統(tǒng)之上。Docker官方網(wǎng)站DockerHub專門存儲(chǔ)所有可用的鏡像。
2.容器( Container):容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例。它可以被啟動(dòng)、開始、停止、刪除。每個(gè)容器都是相互隔離的、保證安全的平臺(tái)。可以把容器看做是一個(gè)簡(jiǎn)易版的 Linux 環(huán)境,Docker 利用容器來運(yùn)行應(yīng)用。鏡像是只讀的,容器在啟動(dòng)的時(shí)候創(chuàng)建一層可寫層作為最上層。
3.倉(cāng)庫(kù):倉(cāng)庫(kù)是集中存放鏡像文件的場(chǎng)所,倉(cāng)庫(kù)注冊(cè)服務(wù)器(Registry)上往往存放著多個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)中又包含了多個(gè)鏡像,每個(gè)鏡像有不同的標(biāo)簽(tag)。目前最大的公開倉(cāng)庫(kù)是 Docker Hub,存放了數(shù)量龐大的鏡像供用戶下載。Docker倉(cāng)庫(kù)用來保存我們的images,當(dāng)我們創(chuàng)建了自己的image之后我們就可以使用push命令將它上傳到公有或者私有倉(cāng)庫(kù),這樣下次要在另外一臺(tái)機(jī)器上使用這個(gè)image時(shí)候,只需要從倉(cāng)庫(kù)上pull下來就可以了。Docker 倉(cāng)庫(kù)的概念跟 Git 類似,注冊(cè)服務(wù)器可以理解為 GitHub 這樣的托管服務(wù)。
4. tar文件
docker常用命令
docker version 版本信息
docker info 查看docker安裝信息
docker stats 查看cpu 內(nèi)存占用信息
-
鏡像操作:
docker search -s 10 java 查找點(diǎn)贊數(shù)大于10 的java鏡像
docker pull nginx:latest 下載nginx最新版本的鏡像
docker images 查看當(dāng)前所有的鏡像
docker rmi 刪除本地一個(gè)或多個(gè)鏡像 ,注意如果有基于這個(gè)鏡像的容器,必須先刪除這個(gè)容器
docker history 查看dockerfile構(gòu)建信息docker commit dockerID my_nginx 將一個(gè)容器打包成鏡像
可以通過save、load的方式從同事那里拷貝鏡像
docker save -o /usr/share/my_ubuntu_v3.tar runoob/ubuntu:v3 將指定鏡像保存成 tar 歸檔文件, -o指定保存的地方和文件名
docker load -i my_ubuntu_v3.tar 導(dǎo)入使用 docker save命令導(dǎo)出的鏡像,(都會(huì)加載到docker指定的地方,不用關(guān)心加載到那里)
也可以使用export、import導(dǎo)出導(dǎo)出,導(dǎo)入和導(dǎo)出鏡像
-
容器操作:
docker run -d -p 80:80 --name my_nginx -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx dockerID 指定端口和名字,使用宿主機(jī)上的配置文件,后臺(tái) 運(yùn)行docker。還可以加上--rm,即當(dāng)容器停止后,自動(dòng)刪除這個(gè)容器,運(yùn)維工作經(jīng)驗(yàn)推薦。docker ps 查看當(dāng)前正在運(yùn)行的docker容器, -a列出所有狀態(tài)的容器,已經(jīng)停止的容器可以start ,restart,pause ,unpause ,create
docker stop dockerID 停止一個(gè)運(yùn)行的容器
docker container prune docker新出的命令,快速刪除所有已經(jīng)退出的容器,docker port dockerID 查看容器的端口映射
docker logs -f dockerID 查看容器內(nèi)部的標(biāo)準(zhǔn)輸出
docker top dockerID 查看容器內(nèi)部運(yùn)行的進(jìn)程
docker inspect dockerID 查看容器的底層信息,挺有用的docker exec -it dockerID /bin/bash 進(jìn)入docker容器內(nèi)部 ,exit退出容器
docker exec -ti -u root 4650e8d1bcca bash root用戶進(jìn)入
總結(jié)
以上是生活随笔為你收集整理的docker基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: emqx—mqtt消息服务器
- 下一篇: 工作中必须要知道的git高级用法