摘要:初識(shí)是什么是一個(gè)開源的應(yīng)用容器引擎,基于語(yǔ)言并遵從協(xié)議開源。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口更重要的是容器性能開銷極低。命令為,如下由此可知,我們新打包的鏡像的為。登錄賬號(hào)再輸入自己的賬號(hào)密碼即可。
初識(shí)Docker Docker是什么?
??Docker 是一個(gè)開源的應(yīng)用容器引擎,基于?Go 語(yǔ)言并遵從Apache2.0協(xié)議開源。
??Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
??容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口,更重要的是容器性能開銷極低。
??Docker與傳統(tǒng)虛擬化的不同之處在于:傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件后,在其上運(yùn)行一個(gè)完整操作系統(tǒng),在該系統(tǒng)上再運(yùn)行所需應(yīng)用進(jìn)程;而容器內(nèi)的應(yīng)用進(jìn)程直接運(yùn)行于宿主的內(nèi)核,容器內(nèi)沒有自己的內(nèi)核,而且也沒有進(jìn)行硬件虛擬。因此容器要比傳統(tǒng)虛擬機(jī)更為輕便。
Docker的優(yōu)勢(shì)??Docker的五大優(yōu)勢(shì)為:
持續(xù)集成
版本控制
可移植性
隔離性
安全性
關(guān)于其說(shuō)明,具體可參考網(wǎng)址:http://dockone.io/article/389 。
Docker的安裝??本文以Mac系統(tǒng)為例,講解Docker的安裝,其它系統(tǒng)的安裝方式可參考:安裝 Docker 。
??Homebrew?的?Cask?已經(jīng)支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 來(lái)進(jìn)行安裝:
brew cask install docker
??如果需要手動(dòng)下載,可以通過(guò)這個(gè)鏈接下載:https://download.docker.com/mac/stable/Docker.dmg 。如同 MacOS 其它軟件一樣,安裝也非常簡(jiǎn)單,雙擊下載的?.dmg?文件,然后將鯨魚圖標(biāo)拖拽到?Application?文件夾即可。
啟動(dòng)Docker??從應(yīng)用中找到 Docker 圖標(biāo)并點(diǎn)擊,即可啟動(dòng)Docker,啟動(dòng)后在最上側(cè)的菜單欄狀態(tài)如下:
??啟動(dòng)終端后,通過(guò)命令可以檢查安裝后的 Docker 版本:
$ docker --version Docker version 18.09.1, build 4c52b90
??接著我們運(yùn)行docker中的hello world來(lái)驗(yàn)證docker是否安裝且啟動(dòng)成功:
Dockerhub賬號(hào)注冊(cè)??為了方便展示以及后續(xù)的docker使用,我們最好在DockerHub上注冊(cè)一個(gè)自己的賬號(hào)。 DockerHub,類似于代碼管理的Github,可以簡(jiǎn)單高效地管理我們的docker項(xiàng)目。
??DockerHub的注冊(cè)地址為:https://hub.docker.com/signup,界面如下:
??注冊(cè)完DockerHub后,我們登錄個(gè)人賬號(hào)。點(diǎn)擊Create Repository +按鈕新建Docker倉(cāng)庫(kù),名字為dockertest。如下:
再點(diǎn)擊Create按鈕即可。創(chuàng)建后的dockertest項(xiàng)目如下:
??至此,我們已經(jīng)在DockerHub上創(chuàng)建了一個(gè)自己的賬號(hào),并且新建的一個(gè)dockertest倉(cāng)庫(kù),盡管這個(gè)倉(cāng)庫(kù)里面沒有任何東西。
??下一步,我們往dockertest這個(gè)倉(cāng)庫(kù)里面裝點(diǎn)什么。
??首先,我們需要用docker在本地打包一個(gè)docker鏡像,然后對(duì)其打標(biāo)簽(tag),然后將其推送(push)至個(gè)人的dockerhub賬號(hào)中的dockertest倉(cāng)庫(kù),最后將該鏡像拉下來(lái),并運(yùn)行。
新建mydocker文件夾
$ tree mydocker mydocker ├── src │?? └── test_docker.py └── test_docker.build
test_docker.py代碼:
print "hello world from python!" print "this is from docker!"
test_docker.build代碼(利用Dockerfile打包鏡像):
FROM centos:7.2.1511 #環(huán)境變量硬編碼及時(shí)區(qū) ENV ENVIRONMENT DOCKER_PROD RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 拷貝并so加密代碼 COPY src /root/src # 工作目錄 WORKDIR /root/src/
這里,我們不再過(guò)多講述上述Dockerfile中的命令,有興趣的同學(xué)可移步:http://blog.51cto.com/wutengf... , 筆者也會(huì)在后續(xù)的文章中給出Dockerfile命令的詳細(xì)講述。
命令行打包鏡像:
cd ./mydocker docker build -f test_docker.build -t hub.docker.com/dockertest:test.1111 .
??在打包完鏡像后,我們可以列出docker的鏡像,查看鏡像的ID,方便后續(xù)操作。命令為docker images,如下:
由此可知,我們新打包的docker鏡像的ID為be236e996983。
打標(biāo)簽(tag)
docker tag be236e996983 jclian91/dockertest:hello_world_test_19.01.31.1100
鏡像ID可通過(guò)docker images查看。
登錄dockerhub賬號(hào)
docker login
再輸入自己的賬號(hào)、密碼即可。
推送(push)鏡像
docker push jclian91/dockertest:hello_world_test_19.01.31.1100
所有命令的界面如下:
此時(shí),我們?nèi)ockerhub的dockertest倉(cāng)庫(kù)中去查看,發(fā)現(xiàn)已經(jīng)上傳一個(gè)鏡像了,如下:
運(yùn)行鏡像為了運(yùn)行新上傳的鏡像,我們先刪除本地打包的鏡像:
$ docker rmi -f be236e996983 Untagged: jclian91/dockertest:hello_world_test_19.01.31.1100 Untagged: jclian91/dockertest@sha256:c2ac02cb725a8256c2d752461133004cc05a6060390220b15a0aaefefc7c95e7 Untagged: hub.docker.com/dockertest:test.1111 Deleted: sha256:be236e996983339318796f588fd5acda1da5f942289a2559f948a4811d68428d Deleted: sha256:5c46baa463a1e86d0924c493bb0e12888fc6aaefdcaf128d8193406eb0ef4ed1 Deleted: sha256:f76e87a3e84bf1a03e81dfdc53a569a7adce6cfc80bb56d7d2040e118e2848f7
拉?。╬ull)新上傳的鏡像
docker pull jclian91/dockertest:hello_world_test_19.01.31.1100
運(yùn)行(run)該鏡像
docker run -it be236e996983 bash
參數(shù)說(shuō)明:其中 -i:交互式操作, -t:終端,如存在-d參數(shù),-d:后臺(tái)運(yùn)行。
這樣我們就能進(jìn)入到這臺(tái)用docker創(chuàng)建好的虛擬機(jī)內(nèi)部了,我們?cè)谠揕inux虛擬機(jī)內(nèi)部運(yùn)行命令,如下:
[root@ca9070ce82e1 src]# ls test_docker.py [root@ca9070ce82e1 src]# python test_docker.py hello world from python! this is from docker!總結(jié)
?? hello world是所有編程語(yǔ)言的入門例子,在本文中,我們用docker自己創(chuàng)建了一個(gè)hello world的例子,用來(lái)展示docker的基本用法,希望能給初入門的同學(xué)一個(gè)明顯直觀的例子。
?? 后續(xù)的文章將會(huì)更多地介紹docker方面的知識(shí),歡迎大家關(guān)注,如有任何疑問(wèn),請(qǐng)?jiān)诹粞詤^(qū)留言。
注意:本人現(xiàn)已開通微信公眾號(hào): Python爬蟲與算法(微信號(hào)為:easy_web_scrape), 歡迎大家關(guān)注哦~~
參考文獻(xiàn):Docker —— 從入門到實(shí)踐: https://yeasy.gitbooks.io/doc...
Docker基本介紹和操作:http://blog.51cto.com/wutengf...
Docker 教程: http://www.runoob.com/docker/...
《第一本Docker書 修訂版》 詹姆斯·特恩布爾 人民郵電出版社
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28088.html
摘要:原文地址零基礎(chǔ)入門指南三允許你在容器內(nèi)運(yùn)行應(yīng)用程序,使用命令來(lái)在容器內(nèi)運(yùn)行一個(gè)應(yīng)用程序。由于官方提供的文件,都放在組里面,所以它的是默認(rèn)組,可以省略。如果發(fā)現(xiàn)本地沒有指定的文件,就會(huì)從倉(cāng)庫(kù)自動(dòng)抓取。因此,前面的命令并不是必需的步驟。 原文地址:Docker零基礎(chǔ)入門指南(三) Docker Hello World Docker 允許你在容器內(nèi)運(yùn)行應(yīng)用程序, 使用 docker run...
摘要:各組件結(jié)構(gòu)下載安裝啟動(dòng)的官方文檔上提供了非常詳細(xì)的安裝流程,簡(jiǎn)單摘錄在上下載社區(qū)版并安裝的操作命令當(dāng)控制臺(tái)輸出加一大段介紹文字時(shí),安裝就大功告成了。 原文鏈接:http://tabalt.net/blog/docker... Docker是一個(gè)使用Golang開發(fā)的開源應(yīng)用容器引擎,讓開發(fā)者可以打包應(yīng)用和依賴到一個(gè)輕量級(jí)、可移植的鏡像中,然后分發(fā)到任何流行的Linux機(jī)器上,并在這些機(jī)...
摘要:前言其實(shí)接觸也有一段時(shí)間了,但是一直沒有做下總結(jié),現(xiàn)在網(wǎng)上關(guān)于的介紹也有很多了,本著好記性不如爛筆頭的原則,還是自己再記錄一波吧。實(shí)現(xiàn)目標(biāo)安裝探索基本概念及用法環(huán)境準(zhǔn)備位,內(nèi)核版本不低于安裝以下命令均需在權(quán)限下執(zhí)行。 showImg(https://segmentfault.com/img/remote/1460000017894270?w=538&h=344); 前言 其實(shí)接觸 do...
摘要:驗(yàn)證安裝分析上面指令結(jié)構(gòu)告訴操作系統(tǒng),正在使用程序子指令,創(chuàng)建并運(yùn)行容器告訴哪個(gè)被導(dǎo)入容器打印如下完美,你的電腦上已經(jīng)成功安裝了。我們通過(guò)上面指令查看鏡像,顯示的可能比容器要多。 驗(yàn)證安裝 docker run hello-world # 分析上面指令結(jié)構(gòu): # docker: 告訴操作系統(tǒng),正在使用docker程序 # run: 子指令,創(chuàng)建并運(yùn)行容器 # hello-world:...
摘要:隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程。容器可以被創(chuàng)建啟動(dòng)停止刪除暫停等。添加內(nèi)核參數(shù)使用看到下面的這些警告信息解決方法內(nèi)核配置參數(shù)以啟用這些功能。然后重新加載 Docker簡(jiǎn)介 Docker 是使用 Go 語(yǔ)言 進(jìn)行開發(fā)實(shí)現(xiàn),基于 Linux 內(nèi)核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術(shù),對(duì)進(jìn)程進(jìn)行封裝隔離,屬于 操作系統(tǒng)層面的虛擬化技...
閱讀 742·2021-11-24 10:19
閱讀 1131·2021-09-13 10:23
閱讀 3447·2021-09-06 15:15
閱讀 1790·2019-08-30 14:09
閱讀 1706·2019-08-30 11:15
閱讀 1855·2019-08-29 18:44
閱讀 952·2019-08-29 16:34
閱讀 2472·2019-08-29 12:46