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)無關(guān),屏蔽了環(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上構(gòu)建的鏡像。
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ù)文章下次再說,嘿嘿嘿。
相關(guān)文章
打包docker鏡像推送到遠程服務器并部署到k8s的方法步驟
本文主要介紹了打包docker鏡像推送到遠程服務器并部署到k8s的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
docker-swarm之使用Docker secret管理敏感數(shù)據(jù)
就Docker Swarm集群服務而言,secret 是塊狀數(shù)據(jù),例如密碼、SSH私鑰、SSL證書或其他不應通過網(wǎng)絡傳輸或未加密存儲在Dockerfile或應用程序源代碼中的數(shù)據(jù),我們可以使用Docker secret 集中管理這些數(shù)據(jù),所以接下來就帶大家了解一下如何使用Docker secret 管理敏感數(shù)據(jù)2023-08-08
解決Docker鏡像拉取超時及優(yōu)化網(wǎng)絡配置的方法(failed to do request
在使用 Docker 構(gòu)建和部署應用時,拉取鏡像是一個關(guān)鍵的步驟,然而,在一些網(wǎng)絡環(huán)境中,特別是企業(yè)內(nèi)部網(wǎng)或受限網(wǎng)絡環(huán)境中,可能會遇到 Docker 鏡像拉取失敗或超時的問題,這篇博客將詳細探討如何應對 Docker 鏡像拉取超時的問題,需要的朋友可以參考下2024-11-11
docker部署lnmp-wordpress的實現(xiàn)步驟
本文主要介紹了docker部署lnmp-wordpress的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09

