摘要:它對于每一個容器來說都是唯一的,所以我們可以使用它。首先,我們要確保容器正在運(yùn)行。命令可以查詢進(jìn)程的所有容器。創(chuàng)建成功后會返回這個鏡像的信息。請先自行注冊我們登陸吧輸入對應(yīng)的,,后,提示表示登陸成功上傳自己的鏡像等待上傳完畢即可。。。。
什么是Docker?
簡介:Docker是一個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個輕量級的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bare metal、OpenStack 集群和其他的基礎(chǔ)應(yīng)用平臺。Docker通常用于如下場景:
web應(yīng)用的自動化打包和發(fā)布;
自動化測試和持續(xù)集成、發(fā)布;
在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺應(yīng)用;
從頭編譯或者擴(kuò)展現(xiàn)有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環(huán)境。
Docker 的安裝 ubuntu環(huán)境下的安裝在Ubuntu中只需要運(yùn)行一行命令即可實現(xiàn)Docker的安裝:
sudo apt-get install docker.io
完成后輸入(顯示docker的信息):
sudo docker info
顯示如下(即成功):
Mac OS X : https://docs.docker.com/installation/mac/
Windows :https://docs.docker.com/installation/windows/
運(yùn)行容器(入門操作)安裝好之后,我們可以開始一些簡單的入門級別的操作:
先理解兩個概念:
鏡像(image):跟平常使用的虛擬機(jī)的鏡像文件一個意思,相當(dāng)于一個模板 容器(container):container則是images運(yùn)行時的的狀態(tài)(可以理解乘,container引用image開啟一個docker的應(yīng)用)
我們可以通過官方提供給我們的鏡像來進(jìn)行學(xué)習(xí)。比如我們想在Docker中運(yùn)行一個Ubuntu系統(tǒng),很簡單,Docker中得pull命令是用來獲取鏡像的,執(zhí)行下面的命令,就會從官方倉庫里獲取Ubuntu 14.04版本的系統(tǒng):
docker pull ubuntu:16.04
查看docker本地的image
docker images
顯示如下圖:
我們把剛剛的鏡像運(yùn)行起來,運(yùn)行起來的鏡像就叫做容器了,容器是可讀寫的,這樣我們就可以在容器里做很多有意思的事情了。run 命令就是將鏡像運(yùn)行起來的,運(yùn)行:
docker run -it ubuntu:14.04
會發(fā)現(xiàn)終端交互的用戶名改變了,說明進(jìn)入了容器的內(nèi)部了,如下圖:
現(xiàn)在在當(dāng)前狀態(tài)所有的操作都是對應(yīng)容器,不會影響本身的系統(tǒng),我們可以嘗試在里面安裝軟件(nginx):
sudo apt-get install -y nginx
查看nginx的版本信息:
nginx -v
顯示如下圖(表示安裝成功):
注意:如果不成功提示
Unable to locate package nginx
可以嘗試先更新下源:
sudo apt-get update
最好我們可嘗試退出容器,回到本機(jī)環(huán)境:
exit
好我們已經(jīng)學(xué)會了如何去獲取image和創(chuàng)建對應(yīng)的container了,那么我么現(xiàn)在來說說,小伙伴在操作的過程中可能會遇到的問題吧:
nginx -v
我們可以看到容器里面有我們剛安裝的nginx的信息,可是當(dāng)我們退出容器后:
exit
在重寫運(yùn)行:
docker run -it ubuntu:14.04
然后再去查看nginx的版本信息
nginx -v
你會發(fā)下nginx 并不存在,也許你會覺得很神奇。。。明明安裝了nginx,現(xiàn)在卻發(fā)現(xiàn)他不見了。。。哈哈!如果你覺得神奇,那么,就說明你還不理解上面的image和container 的概念!(我們再來梳理下吧)
退出容器,回到原來的系統(tǒng),輸入:
sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
結(jié)果如圖:
這個的意思與我們在在終端輸入:
/bin/sh -c "while true; do echo hello world; sleep 1; done"
的作用并沒有差異,只是將對應(yīng)的執(zhí)行命令的對象轉(zhuǎn)換到容器中執(zhí)行;
結(jié)果如圖:
這是一個忠實的 hello world 進(jìn)程:一個腳本會一直輸出 "hello world"
為什么我們看不到的一大堆的 "hello world" ? 而是docker返回的一個很長的字符串:
這個長的字符串叫做容器ID(container ID)。它對于每一個容器來說都是唯一的,所以我們可以使用它。
注意:容器 ID 是有點長并且非常的笨拙,稍后我們會看到一個短點的 ID,某些方面來說它是容器 ID 的簡化版。
首先,我們要確保容器正在運(yùn)行。我們可以使用 docker ps 命令來查看。docker ps 命令可以查詢 docker 進(jìn)程的所有容器。
這里我們看到了以進(jìn)程模式運(yùn)行的容器。docker ps 命令會返回一些有用的信息,這里包括一個短的容器
我們也可以停止他:
sudo docker stop containerID將容器轉(zhuǎn)化為鏡像
查看所有的容器
docker ps -a
結(jié)果如圖:
啟動剛剛?cè)萜?并進(jìn)入容器
docker start containerID docker attach containerID
回到本地系統(tǒng)打包:
使用 commit 命令用來將容器轉(zhuǎn)化為鏡像,運(yùn)行下面的命令,我們可以講剛剛的容器轉(zhuǎn)換為鏡像:
sudo docker commit -m "Added nginx from ubuntu16.04" -a "xiaozhen" containerID xiaozhen/ubuntu-nginx:v1
其中,-m 參數(shù)用來來指定提交的說明信息;-a可以指定用戶信息的;containerID 代表的時容器的id;xiaozhen/ubuntu-nginx:v1指定目標(biāo)鏡像的用戶名、倉庫名和 tag 信息。創(chuàng)建成功后會返回這個鏡像的 ID 信息。注意的是,你一定要將 xiaozhen 改為你自己的用戶名。因為下文還會用到此用戶名。
辛苦了這么久,終于有了自己的鏡像了,趕緊裝上去爽一爽吧!
sudo docker run -it xiaozhen/ubuntu-nginx:v1
趕緊看看nginx在不在!
nginx -v
結(jié)果如圖:
存儲鏡像我們剛剛已經(jīng)創(chuàng)建了自己的第一個鏡像,盡管它很簡單,但這已經(jīng)非常棒了,現(xiàn)在,我們希望它能夠被更多的人使用到,此時,我們就需要將這個鏡像上傳到鏡像倉庫,Docker的官方Docker Hub應(yīng)該是目前最大的Docker鏡像中心,所以,我們就將我們的鏡像上傳到Docker Hub。(請先自行注冊)
我們登陸Docker Hub吧:
sudo docker login
輸入對應(yīng)的Username,Password,Email 后,提示Login Success 表示登陸成功
上傳自己的鏡像
docker push mexiaozhen/ubuntu-nginx:v1
等待上傳完畢即可
。。。。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26600.html
摘要:確切位置因平臺而異。如果以編程方式使用,這個頁面也是一個強(qiáng)大的調(diào)試工具,能看到所有原始的協(xié)議命令通過連線,於瀏覽器進(jìn)行通信。警告協(xié)議可以做很多有趣的事,但作為入門選項他令人沮喪。目前,提供了比協(xié)議高級別的。 本文翻譯自:Getting Started with Headless Chrome原文更新時間:July 28,2017作者:Eric Bidelman(Engineer @ G...
摘要:目錄許多開發(fā)者會把的目錄命名為但這並不強(qiáng)迫。所有的檔案都會使用從被編譯成。同時有個小小的重點那就是我們可已觀察編譯後的檔案大小。在專案目錄下執(zhí)行可以觀察截至目前為止的結(jié)果。我們的目標(biāo)是要把編譯封裝到我們的中。 在今時今日,webpack 已經(jīng)成為前端開發(fā)非常重要的工具之一。本質(zhì)上它是一個 Javascript 模組封裝工具,但透過 loaders 和 plugins 它也可以轉(zhuǎn)換封裝其...
摘要:便宜通配符證書通配符證書是一款全球最大的數(shù)字證書頒發(fā)機(jī)構(gòu)之一,是旗下證書品牌。通配符證書原是全球著名,也是全球證書佔有率最高的證書頒發(fā)機(jī)構(gòu)。SSL證書根據(jù)保護(hù)域名數(shù)量可以分為單域名證書、多域名證書和通配符證書。單域名和多域名SSL證書比較好理解,但很多人對通配符SSL證書的理解有誤。下面我們就聊聊通配符證書。 什麼是通配符SSL證書? 通配符SSL證書又稱為泛域名證書,它...
摘要:談起閉包,它可是兩個核心技術(shù)之一異步基于打造前端持續(xù)集成開發(fā)環(huán)境本文將以一個標(biāo)準(zhǔn)的項目為例,完全拋棄傳統(tǒng)的前端項目開發(fā)部署方式,基于容器技術(shù)打造一個精簡的前端持續(xù)集成的開發(fā)環(huán)境。 這一次,徹底弄懂 JavaScript 執(zhí)行機(jī)制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機(jī)制,如果讀完本文還不懂,可以揍我。 不論你是javascript新手還是老鳥,不論是面試求職,還是日...
摘要:如果使用操作系統(tǒng)自帶包安裝,目前安裝的版本是比較舊的。之前版本如果是較低版本的系統(tǒng),需要先更新內(nèi)核。然后重復(fù)上面的步驟即可。 Quick Start Installation Ubuntu 通過系統(tǒng)自帶包安裝 Ubuntu 14.04 版本系統(tǒng)中已經(jīng)自帶了 Docker 包,可以直接安裝。 $ sudo apt-get update $ sudo apt-get install -y ...
閱讀 811·2023-04-25 20:18
閱讀 2092·2021-11-22 13:54
閱讀 2527·2021-09-26 09:55
閱讀 3857·2021-09-22 15:28
閱讀 2969·2021-09-03 10:34
閱讀 1709·2021-07-28 00:15
閱讀 1628·2019-08-30 14:25
閱讀 1281·2019-08-29 17:16