10分鐘學(xué)會(huì)docker
本文大概耗時(shí)10分鐘。
你將會(huì)看到以下內(nèi)容:
- 為什么要用docker
- docker幾個(gè)概念
- 如何運(yùn)行docker container
- 如何build image
本文假定你有以下基礎(chǔ):
1.linux命令行(見(jiàn)參考鏈接)
2.必要的英語(yǔ)詞匯
為什么要用docker?
在探討docker能為我們帶來(lái)的好處時(shí),我們先得明白docker是什么。docker官網(wǎng)是這樣描述的“Docker is the world's leading software container platform.”由此可見(jiàn),docker是一個(gè)容器的平臺(tái),我們把要打包的東西放到一個(gè)容器中,然后就可以在docker這個(gè)平臺(tái)上運(yùn)行,因?yàn)閐ocker在各個(gè)系統(tǒng)下都可以安裝,所以就可以和系統(tǒng)無(wú)關(guān),屏蔽了環(huán)境的復(fù)雜性。同時(shí),docker的容器可以包含app運(yùn)行的所有依賴(lài),在部署的時(shí)候就沒(méi)有必要把所有依賴(lài)都手動(dòng)安裝一遍了。
docker中有哪幾個(gè)核心概念
雖然一上來(lái)就提概念像是教科書(shū),但是不搞懂核心概念,下面的東西你可能看不懂。。。或者跳過(guò)這里直接看下面也行,遇到不懂的回過(guò)頭來(lái)再看。
image和container
image就是包含了一個(gè)應(yīng)用的代碼,依賴(lài),運(yùn)行時(shí)。container可以理解為image的運(yùn)行形態(tài),它是以一個(gè)獨(dú)立的進(jìn)程存在的。
docker deamon與docker client
docker的守護(hù)進(jìn)程,后端服務(wù)。docker client是一個(gè)docker的客戶(hù)端,它和docker deamon交互。
base image與child image
base image 是指沒(méi)有父鏡像的鏡像,這些鏡像一般是系統(tǒng)級(jí)別的鏡像,如 ubuntu,alpine。child image在base image上構(gòu)建的鏡像。
Dockerfile image的描述文件。它包含了運(yùn)行app所需的所有信息。包括base image,代碼位置,工作目錄,依賴(lài),項(xiàng)目啟動(dòng)命令等等。
如何運(yùn)行docker container
docker的安裝就不贅述了,可以去看參考鏈接。
先執(zhí)行以下你的第一條docker語(yǔ)句
docker container run hello-world
又是hello world,so cool,right?
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 03f4658f8b78: Pull complete a3ed95caeb02: Pull complete Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7 Status: Downloaded newer image for hello-world:latest
Hello from Docker. This message shows that your installation appears to be working correctly.
如果你能看到上面的東西,證明你已經(jīng)運(yùn)行了第一個(gè)docker container,恭喜呀。
讓我們來(lái)看下那個(gè)命令運(yùn)行之后用發(fā)生了什么吧。首先,docker會(huì)去你的本地去找有沒(méi)有hello-world這個(gè)image,發(fā)現(xiàn)沒(méi)有之后它會(huì)去docker registry上去找有沒(méi)有hello-world,找到了之后把它拉取到本地,然后它又發(fā)現(xiàn)了里面的Dockerfile還有依賴(lài),它就接著拉取依賴(lài),最后,拉取成功,啟動(dòng)。
好了,把這個(gè)不再需要的container移除吧。運(yùn)行以下語(yǔ)句
docker container ls -a
你會(huì)看到下面的東西
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9e354503933b hello-world "/hello" 4 minutes ago Exited (0) 27 seconds ago serene_engelbart
復(fù)制這個(gè)container id全部或者部分
運(yùn)行下面語(yǔ)句,將會(huì)移除container
docker container rm -f 9e354503933b
光移除container還是不夠的,container只是運(yùn)行形態(tài),image還在,還得把image也移除了。運(yùn)行下列語(yǔ)句列出你本地的images。
docker images
你會(huì)收到看到一個(gè)對(duì)應(yīng)的image id,接著通過(guò)image id移除image。
docker image rm 1815c82652c0
如何build docker image
今天就先到這里了,后續(xù)文章下次再說(shuō),嘿嘿嘿。
相關(guān)文章
Linux新建用戶(hù)并允許docker及docker基本命令
這篇文章給大家介紹了Linux新建用戶(hù)并允許docker及docker的容器創(chuàng)建及基本命令講解,需要的朋友參考下本文吧2017-12-12
Docker 動(dòng)態(tài)修改容器端口映射的方法
這篇文章主要介紹了Docker 動(dòng)態(tài)修改容器端口映射的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
打包docker鏡像推送到遠(yuǎn)程服務(wù)器并部署到k8s的方法步驟
本文主要介紹了打包docker鏡像推送到遠(yuǎn)程服務(wù)器并部署到k8s的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
docker-swarm之使用Docker secret管理敏感數(shù)據(jù)
就Docker Swarm集群服務(wù)而言,secret 是塊狀數(shù)據(jù),例如密碼、SSH私鑰、SSL證書(shū)或其他不應(yīng)通過(guò)網(wǎng)絡(luò)傳輸或未加密存儲(chǔ)在Dockerfile或應(yīng)用程序源代碼中的數(shù)據(jù),我們可以使用Docker secret 集中管理這些數(shù)據(jù),所以接下來(lái)就帶大家了解一下如何使用Docker secret 管理敏感數(shù)據(jù)2023-08-08
解決Docker鏡像拉取超時(shí)及優(yōu)化網(wǎng)絡(luò)配置的方法(failed to do request
在使用 Docker 構(gòu)建和部署應(yīng)用時(shí),拉取鏡像是一個(gè)關(guān)鍵的步驟,然而,在一些網(wǎng)絡(luò)環(huán)境中,特別是企業(yè)內(nèi)部網(wǎng)或受限網(wǎng)絡(luò)環(huán)境中,可能會(huì)遇到 Docker 鏡像拉取失敗或超時(shí)的問(wèn)題,這篇博客將詳細(xì)探討如何應(yīng)對(duì) Docker 鏡像拉取超時(shí)的問(wèn)題,需要的朋友可以參考下2024-11-11
docker部署lnmp-wordpress的實(shí)現(xiàn)步驟
本文主要介紹了docker部署lnmp-wordpress的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
在Centos7 中更改Docker默認(rèn)鏡像和容器的位置
這篇文章主要介紹了在Centos7 下更改Docker默認(rèn)鏡像和容器的位置,需要的朋友可以參考下2017-05-05

