SpringCloud番外篇1之docker介紹

??最近暫停了對SpringCloud的繼續(xù)學(xué)習(xí),是因?yàn)橛腥苏fSpringCloud脫離了docker,devops就像一道大餐沒有加鹽一樣。有時(shí)候馬不停蹄的去學(xué)習(xí)是為了想縮小與別人的差距,但是,個(gè)人覺得要學(xué)精一樣?xùn)|西,還是必須要學(xué)會(huì)一些輔助性或者基本的技能才行。好了,話不多說,這里就簡單總結(jié)下自己學(xué)到的docker方面的內(nèi)容

1.什么是docker

??官方說docker是一個(gè)開源工程,可以將任何應(yīng)用以輕量級容器的形式進(jìn)行打包和發(fā)布。(有點(diǎn)抽象)
??其實(shí)docker可以粗糙的理解為輕量級的虛擬機(jī),但是它又不是虛擬機(jī)。



??虛擬機(jī)是在宿主HostOS上有一個(gè)Hepervisor層上虛擬出硬件,在這個(gè)虛擬硬件上我們會(huì)安裝獨(dú)立的GuestOS,然后在里面運(yùn)行各種各樣的程序。
??docker和虛擬機(jī)不一樣的是,它有一層Docker Engine,它很好的利用了Host OS里面的namespace,然后將應(yīng)用程序分離,因?yàn)闆]有虛擬層這一層,所以它的運(yùn)行速度比虛擬機(jī)快,啟動(dòng)成本也比虛擬機(jī)快很多,這就是docker為什么深受青睞的原因

2.docker的架構(gòu)

docker架構(gòu)

DOCKER_HOST是我們進(jìn)行docker操作的虛擬機(jī),在這里運(yùn)行了一個(gè)叫做Docker daemon的核心程序,通過它可以下載鏡像,運(yùn)行容器。那么我們?nèi)绾闻c這個(gè)Docker daemon進(jìn)行交互呢?通過Client的命令與之交互(很廢話~)。最右邊的Registry是提供鏡像的地方,所有的用戶都可以在這上面拉取鏡像,或者是放鏡像上去。


docker架構(gòu)2

3.docker的hello world

??3.1啟動(dòng)docker daemon進(jìn)程
??service docker start
??3.2拉取一個(gè)ubuntu鏡像
??sudo docker pull ubuntu
??3.3運(yùn)行ubuntu鏡像,并輸出一個(gè)hello docker
??docker run ubuntu echo hello docker
??大家可以想象下,如果沒有docker,我們啟動(dòng)一個(gè)虛擬機(jī),然后打印一個(gè)hello docker要耗費(fèi)多長時(shí)間現(xiàn)在有了docker可以說是非常的方便。
??3.4docker images展示目前所有下載的鏡像
??3.5docker ps展示docker目前運(yùn)行的進(jìn)程

4.利用docker玩轉(zhuǎn)Nginx

??4.1docker run -p 8080:80 -d nginx運(yùn)行nginx,將80端口映射為8080端口,-d是后臺(tái)運(yùn)行的意思
??4.2docker cp index.html 1e3533e84086://usr/share/nginx/html將一個(gè)靜態(tài)頁面放入到容器中
??4.3docker stop 1e3533e84086
當(dāng)我們stop掉,再次啟動(dòng)nginx的時(shí)候,我們會(huì)發(fā)現(xiàn)之前放進(jìn)去的頁面失效了。
??4.4docker commit -m 'fun' ce54f745d1c3 可以通過這個(gè)命令提交我們的改動(dòng),也可以寫成docker commit -m '隨便寫' ce54f745d1c3 nginx-fun,指定一個(gè)名字,可以通過docker images看到nginx-fun,否則看到的是none
??4.5docker rmi 120f1ee8f07b刪除掉不需要的鏡像
??4.6docker ps -a可以展示歷史進(jìn)程
??4.7docker rm ce54f745d1c3 1e3533e84086刪掉歷史進(jìn)程(可以刪除多個(gè))

docker命令小結(jié)1

docker命令小結(jié)2

5.dockerfile介紹

之前我們通過commit創(chuàng)建了一個(gè)新的鏡像,這里我們用dockerfile來生成新的鏡像
??5.1新建一個(gè)dockerfile

FROM ubuntu
MAINTAINER zzm
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
EXPOSE 80

??5.2創(chuàng)建新鏡像

docker build -t zzm/hello-nginx .

??5.3運(yùn)行新鏡像

docker run -d -p 80:80 zzm/hello-nginx

dockerfile語法小結(jié)

dockerfile語法小結(jié)

??詳細(xì)的dockerfile語法可以見Docker Dockerfile 定制鏡像

6.volume介紹

??6.1定義:提供獨(dú)立于容器之外的持久化存儲(chǔ)
??6.2作用:我們知道docker容器里面是不會(huì)保存任何東西的,但是如果我們的容器里面用的數(shù)據(jù)庫想要保存數(shù)據(jù)信息該怎么辦呢?這個(gè)時(shí)候volume的作用就非常大了,通過它可以掛載容器之外的一些目錄或磁盤,這樣在容器之外修改了相應(yīng)的內(nèi)容,容器內(nèi)部還是能感知到的。

7.鏡像倉庫

image.png

與Registry之間的交互

image.png

8.容器app

關(guān)于docker-compose的優(yōu)缺點(diǎn),大家可以看看這篇文章:
docker compose

image.png

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 朋友圈的家人伙伴們,下午好。回想上一周我寫第二封信的時(shí)候很多人還是關(guān)注我點(diǎn)了贊?;叵胱约旱奈⑸痰缆?,一路走來也是坎...
    周榮榮閱讀 217評論 0 0
  • 以為一壺沸水可以煮熟舊事 以為酵藏的時(shí)光可以喚醒 被掐斷的青春 以為被囚禁的電流可以 干柴烈火般澆滅 一場大雨 以為……
    花_信_(tái)風(fēng)閱讀 172評論 0 1
  • 反思日志0813周日 下雨 6:00起床 23:00睡覺 運(yùn)動(dòng):(重點(diǎn)關(guān)注右側(cè)大腿,髂腰肌及骶髂關(guān)節(jié)的拉伸放松,最...
    娟妹紙李娟閱讀 231評論 0 0
  • 我們學(xué)校又破又舊,當(dāng)別的學(xué)校都已經(jīng)用高大上的希沃白板,我們還是粉筆和黑板。當(dāng)然,這并不能阻擋我們工作的熱情,對孩子...
    楊小羊的幸福生活閱讀 218評論 0 0
  • 01 從來沒想過,像我這樣的“三不”人員,不按要求、不追熱點(diǎn)、不按時(shí)間的人,居然也能夠通過寫字賺錢。 大學(xué)時(shí)期看劉...
    活在地球的貓閱讀 12,865評論 51 306