10分鐘學會docker
本文大概耗時10分鐘。
你將會看到以下內(nèi)容:
- 為什么要用docker
- docker幾個概念
- 如何運行docker container
- 如何build image
本文假定你有以下基礎:
1.linux命令行(見參考鏈接)
2.必要的英語詞匯
為什么要用docker?
在探討docker能為我們帶來的好處時,我們先得明白docker是什么。docker官網(wǎng)是這樣描述的“Docker is the world's leading software container platform.”由此可見,docker是一個容器的平臺,我們把要打包的東西放到一個容器中,然后就可以在docker這個平臺上運行,因為docker在各個系統(tǒng)下都可以安裝,所以就可以和系統(tǒng)無關,屏蔽了環(huán)境的復雜性。同時,docker的容器可以包含app運行的所有依賴,在部署的時候就沒有必要把所有依賴都手動安裝一遍了。
docker中有哪幾個核心概念
雖然一上來就提概念像是教科書,但是不搞懂核心概念,下面的東西你可能看不懂。。?;蛘咛^這里直接看下面也行,遇到不懂的回過頭來再看。
image和container
image就是包含了一個應用的代碼,依賴,運行時。container可以理解為image的運行形態(tài),它是以一個獨立的進程存在的。
docker deamon與docker client
docker的守護進程,后端服務。docker client是一個docker的客戶端,它和docker deamon交互。
base image與child image
base image 是指沒有父鏡像的鏡像,這些鏡像一般是系統(tǒng)級別的鏡像,如 ubuntu,alpine。child image在base image上構建的鏡像。
Dockerfile image的描述文件。它包含了運行app所需的所有信息。包括base image,代碼位置,工作目錄,依賴,項目啟動命令等等。
如何運行docker container
docker的安裝就不贅述了,可以去看參考鏈接。
先執(zhí)行以下你的第一條docker語句
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)運行了第一個docker container,恭喜呀。
讓我們來看下那個命令運行之后用發(fā)生了什么吧。首先,docker會去你的本地去找有沒有hello-world這個image,發(fā)現(xiàn)沒有之后它會去docker registry上去找有沒有hello-world,找到了之后把它拉取到本地,然后它又發(fā)現(xiàn)了里面的Dockerfile還有依賴,它就接著拉取依賴,最后,拉取成功,啟動。
好了,把這個不再需要的container移除吧。運行以下語句
docker container ls -a
你會看到下面的東西
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9e354503933b hello-world "/hello" 4 minutes ago Exited (0) 27 seconds ago serene_engelbart
復制這個container id全部或者部分
運行下面語句,將會移除container
docker container rm -f 9e354503933b
光移除container還是不夠的,container只是運行形態(tài),image還在,還得把image也移除了。運行下列語句列出你本地的images。
docker images
你會收到看到一個對應的image id,接著通過image id移除image。
docker image rm 1815c82652c0
如何build docker image
今天就先到這里了,后續(xù)文章下次再說,嘿嘿嘿。
相關文章
使用Docker部署打包發(fā)布springboot項目
本文主要介紹了使用Docker部署打包發(fā)布springboot項目,從安裝docker到多種方式打包發(fā)布,編譯,鏡像,容器等問題,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03使用docker部署influxdb與 mongo的常用命令
這篇文章主要介紹了使用docker部署influxdb與 mongo的常用命令,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05