摘要:當運行這條命令的時候,實際上是從上來請求標記為的,當然由于眾所周知的原因,的速度會很慢。運行下邊這條命令,我們就可以清理下了。歡迎訂閱我的公眾號,第一時間獲取圖表君的新文章。
上篇文章我們介紹了docker的歷史由來帶來的一些好處,從這篇文章開始,我們開始正式的進入Docker的世界,首先給大家介紹一下Docker一些基本概念。
Docker的基本概念Docker的基本概念并不是很多,就是三個:
鏡像(image)
容器(Container)
倉庫(Repository)
深入理解這三個概念,對于docker的理解會有很大的幫助。
什么是image呢,簡單來說image就是一個鏡像,一個系統(tǒng)的snapshot,可以類比于一個vm的image,或者如果你用過AWS,類似于一個AMI文件。
什么是Container,Container是簡易版的Linux環(huán)境,可以類比的與一個Virtual Machine 或者 一個EC2的instance。
那個image和Container什么關系呢?一個docker Container 需要加載一個image然后執(zhí)行。image是run在Container里的。
什么是repository呢?repository是一個image倉庫,可以將打好的Docker image push這個倉庫中與他人分享。
相信上篇文章后大家已經(jīng)把docker安裝好了吧。下邊我們就來一步步的介紹這個三個概念。
運行docker pull命令可以從倉庫中獲取鏡像。
docker pull ubuntu:16.04
當運行這條命令的時候,實際上是從docker hub 上來請求標記為16.04 的Ubuntu image,當然由于眾所周知的原因,pull的速度會很慢。所以我們可以選擇從國內(nèi)的一些repository來pull images。例如這樣:
docker pull daocloud.io/ubuntu:14.04
如何看到我們本地已經(jīng)pull下來的images呢?使用docker images可以列出本地已有的鏡像。
REPOSITORY TAG IMAGE ID CREATED SIZE python 3.5-alpine 4f778158195b 5 days ago 87.58 MB python 3.5.2-alpine 4f778158195b 5 days ago 87.58 MB python 2.7-alpine 8b2171e895fd 3 weeks ago 71.97 MB
我們可以看到他是來自哪個倉庫的,image的標價,全局唯一的ID,創(chuàng)建的時間 和鏡像的大小。同樣如果我們想查看哪個倉庫的images 可以這樣:
docker images ubuntu
images下載好了,我們怎么運行這個image呢?easy
docker run -t -i ubuntu /bin/bash root@fc8e5743f790:/#
這樣我們就使用這個image創(chuàng)建了一個Container 并運行bash應用。ps.上邊的 -t 讓docker分配一個偽終端并綁定到容器的標準輸入上,-i 讓容器的標準輸入保持打開。
下邊的一個問題是如何創(chuàng)建一個image呢,有兩種方法,一種是我們基于現(xiàn)有的image,例如這樣:
docker run -i -t ubuntu /bin/bash root@c5c7fa33b061:/# apt-get update && apt-get install -y curl ...
我們創(chuàng)建了一個docker container 并在其中裝上curl,這是注意我們得記下他的ID。
docker commit c5c7fa33b061 ubuntu-have-curl docker history ubuntu-have-curl
我們使用了docke commit 生成了一個new image ‘Ubuntu-have-curl’,并用docker history看看這個image的歷史。
下來我們用這個image來curl一下。
docker run ubuntu-have-curl curl https://www.baidu.com % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2443 100 2443 0 0 12234 0 --:--:-- --:--:-- --:--:-- 12215
easy? Yes.這樣我們就build一個帶curl的Ubuntu image,你可以把他push 到 docker hub上,讓更多人使用了。
使用docker commit 可以對于一個鏡像做些簡單的擴展,但不方便分享和他人的利用。另外一種方式是使用dockerfile,這是更加通用的方法,這里暫不詳解,后邊會專門的介紹dockerfile。
我們看了pull,build,run一個image,下來看看如何刪除吧。命令很簡單 docker rmi
docker rmi ubuntu:14.04
當我們使用了一段時間以后,我們運行docker images會發(fā)現(xiàn)有很多沒有tag的images,大量占據(jù)著磁盤空間,那么勢必就要清理下了。
運行下邊這條命令,我們就可以清理下了。
$ sudo docker rmi $(docker images -q -f "dangling=true")
歡迎訂閱我的公眾號,第一時間獲取圖表君的新文章。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26733.html
摘要:圖表君聊開篇今天是圖表君聊的第一篇,為什么會有這個系列呢容器技術出現(xiàn)已經(jīng)有一段時間了,之前零零星星的也看過一些文章,圖表君的項目上也在使用。至于,圖表君沒試過,官網(wǎng)有的教程,大家可以參考。上的官網(wǎng),安裝,然后跟著圖表君一起學習吧。 圖表君聊Docker-開篇 今天是圖表君聊Docker的第一篇,為什么會有這個系列呢?容器技術Docker出現(xiàn)已經(jīng)有一段時間了,之前零零星星的也看過一些文章...
摘要:圖表君聊倉庫今天我們來繼續(xù)聊,上篇文章我們介紹了里的今天來繼續(xù)三大概念中的最后一個倉庫。這個倉庫可以是一個私有的倉庫,供一個內(nèi)部使用。目前官方維護一個公共倉庫里邊有大量的,可以滿足我們的大部分需求。原創(chuàng)文章,歡迎轉(zhuǎn)發(fā),但請標明出處。 圖表君聊docker-倉庫 今天我們來繼續(xù)聊docker,上篇文章我們介紹了docker里的Container.今天來繼續(xù)三大概念中的最后一個--倉庫(R...
摘要:圖表君聊前邊幾篇文章給大家介紹了的三大基本概念。維護者的信息是圖表君當前目錄到容器中的目錄下指定工作路徑為安裝依賴暴露端口啟動創(chuàng)建鏡像編寫好后,就可以使用來了。歡迎訂閱我的公眾號,第一時間獲取圖表君的新文章。 圖表君聊docker-Dockerfile 前邊幾篇文章給大家介紹了docker的三大基本概念。可能大家覺得概念的東西比較生澀,有沒有更多實戰(zhàn)的例子呢?好了,從這篇文章開始,我會...
摘要:利用鏡像創(chuàng)建并啟動一個容器分配一個文件系統(tǒng),并在只讀的鏡像層外層掛接一個寫讀寫層。容器的啟動過程,對于理解容器至關重要,需要深入的理解。同時,對于終止狀態(tài)的容器,我們可以采用來啟動。歡迎訂閱我的公眾號,第一時間獲取圖表君的新文章。 上篇文章我們介紹了Docker三大概念中的Image,這篇我們來介紹Container,上篇文章中我們了解到了Image是運行在Container中的,實際...
摘要:它有什么圖表加粗文字如何使用這個圖表庫可以通過存儲庫下載或通過包管理器安裝。數(shù)據(jù)可以直接從文件加載到圖表中。它有什么圖表如何使用該庫可在包管理器和他們自己的內(nèi)容傳送網(wǎng)絡中使用。該庫專為風格的數(shù)據(jù)可視化而設計,提供一系列高度可配置的圖表。 現(xiàn)在有很多圖表庫,但哪一個最好用?這可能取決于許多因素,如業(yè)務需求,數(shù)據(jù)類型,圖表本身的目的等等。在本文中,每個JavaScript圖表庫將與一些關鍵...
閱讀 2215·2021-09-07 09:58
閱讀 3390·2019-08-30 14:07
閱讀 1304·2019-08-29 12:32
閱讀 666·2019-08-29 11:06
閱讀 3691·2019-08-26 18:18
閱讀 3730·2019-08-26 17:35
閱讀 1380·2019-08-26 11:35
閱讀 610·2019-08-26 11:35