溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

10分鐘學(xué)會(huì)docker

發(fā)布時(shí)間:2020-10-13 04:33:52 來源:腳本之家 閱讀:131 作者:Darcy 欄目:服務(wù)器

本文大概耗時(shí)10分鐘。

你將會(huì)看到以下內(nèi)容:

  • 為什么要用docker
  • docker幾個(gè)概念
  • 如何運(yùn)行docker container
  • 如何build image

本文假定你有以下基礎(chǔ):

1.linux命令行(見參考鏈接)

2.必要的英語詞匯

為什么要用docker?

在探討docker能為我們帶來的好處時(shí),我們先得明白docker是什么。docker官網(wǎng)是這樣描述的“Docker is the world's leading software container platform.”由此可見,docker是一個(gè)容器的平臺(tái),我們把要打包的東西放到一個(gè)容器中,然后就可以在docker這個(gè)平臺(tái)上運(yùn)行,因?yàn)閐ocker在各個(gè)系統(tǒng)下都可以安裝,所以就可以和系統(tǒng)無關(guān),屏蔽了環(huán)境的復(fù)雜性。同時(shí),docker的容器可以包含app運(yùn)行的所有依賴,在部署的時(shí)候就沒有必要把所有依賴都手動(dòng)安裝一遍了。

docker中有哪幾個(gè)核心概念

雖然一上來就提概念像是教科書,但是不搞懂核心概念,下面的東西你可能看不懂。。?;蛘咛^這里直接看下面也行,遇到不懂的回過頭來再看。

image和container

image就是包含了一個(gè)應(yīng)用的代碼,依賴,運(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的客戶端,它和docker deamon交互。

base image與child image

base image 是指沒有父鏡像的鏡像,這些鏡像一般是系統(tǒng)級(jí)別的鏡像,如 ubuntu,alpine。child image在base image上構(gòu)建的鏡像。

Dockerfile image的描述文件。它包含了運(yùn)行app所需的所有信息。包括base image,代碼位置,工作目錄,依賴,項(xiàng)目啟動(dòng)命令等等。

如何運(yùn)行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)運(yùn)行了第一個(gè)docker container,恭喜呀。

讓我們來看下那個(gè)命令運(yùn)行之后用發(fā)生了什么吧。首先,docker會(huì)去你的本地去找有沒有hello-world這個(gè)image,發(fā)現(xiàn)沒有之后它會(huì)去docker registry上去找有沒有hello-world,找到了之后把它拉取到本地,然后它又發(fā)現(xiàn)了里面的Dockerfile還有依賴,它就接著拉取依賴,最后,拉取成功,啟動(dòng)。

好了,把這個(gè)不再需要的container移除吧。運(yùn)行以下語句

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)行下面語句,將會(huì)移除container

docker container rm -f 9e354503933b

光移除container還是不夠的,container只是運(yùn)行形態(tài),image還在,還得把image也移除了。運(yùn)行下列語句列出你本地的images。

docker images

你會(huì)收到看到一個(gè)對(duì)應(yīng)的image id,接著通過image id移除image。

docker image rm 1815c82652c0

如何build docker image

今天就先到這里了,后續(xù)文章下次再說,嘿嘿嘿。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI