中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站創(chuàng)作情感營(yíng)銷(xiāo)

網(wǎng)站創(chuàng)作,情感營(yíng)銷(xiāo),網(wǎng)站流量統(tǒng)計(jì)模板,檔案網(wǎng)站建設(shè)圖片Docker基礎(chǔ)入門(mén):常規(guī)軟件安裝與鏡像加載原理 一、Docker常規(guī)軟件安裝1.1、部署nginx1.2、部署tomcat1.3、部署elasticsearch1.4、如何部署kibana-->連接elasticsearch1.5、部署可視化工具 二、 鏡像加載原理2.1、鏡像是什么2.2、Docker鏡像加速原理2.3、分層理解…

Docker基礎(chǔ)入門(mén):常規(guī)軟件安裝與鏡像加載原理

  • 一、Docker常規(guī)軟件安裝
    • 1.1、部署nginx
    • 1.2、部署tomcat
    • 1.3、部署elasticsearch
    • 1.4、如何部署kibana-->連接elasticsearch
    • 1.5、部署可視化工具
  • 二、 鏡像加載原理
    • 2.1、鏡像是什么
    • 2.2、Docker鏡像加速原理
    • 2.3、分層理解


💖The Begin💖點(diǎn)點(diǎn)關(guān)注,收藏不迷路💖

在這里插入圖片描述

一、Docker常規(guī)軟件安裝

1.1、部署nginx

1、拉取nginx鏡像
[root@zyl-server ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@zyl-server ~]# 2、查看鏡像
[root@zyl-server ~]# docker images
REPOSITORY                                            TAG       IMAGE ID       CREATED         SIZE
192.168.234.10:5000/centos                            1.2       d0a52e21dd65   20 hours ago    231MB
centos                                                1.2       d0a52e21dd65   20 hours ago    231MB
nginx                                                 latest    605c77e624dd   19 months ago   141MB
registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos   7.9       5d0da3dc9764   23 months ago   231MB
[root@zyl-server ~]# 3、運(yùn)行nginx,8011為容器外部端口,80端口為容器內(nèi)部nginx的端口
[root@zyl-server ~]# docker run -d --name=mynginx -p 8011:80 nginx
926fd257ed887f86894e1fb3b99c2f5edda141e9fdd92c04de3255fd2b1b4973
[root@zyl-server ~]# [root@zyl-server ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED              STATUS              PORTS                                   NAMES
926fd257ed88   nginx     "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:8011->80/tcp, :::8011->80/tcp   mynginx
[root@zyl-server ~]# 4、進(jìn)入nginx容器
[root@zyl-server ~]# docker exec -it mynginx /bin/bash
root@926fd257ed88:/# ls
bin  boot  dev	docker-entrypoint.d  docker-entrypoint.sh  etc	home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@926fd257ed88:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@926fd257ed88:/# cd /etc/nginx/
root@926fd257ed88:/etc/nginx# ls
conf.d	fastcgi_params	mime.types  modules  nginx.conf  scgi_params  uwsgi_params
root@926fd257ed88:/etc/nginx# 
root@926fd257ed88:/etc/nginx# 

本地訪(fǎng)問(wèn)8011測(cè)試:

[root@zyl-server ~]# curl localhost:8011
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@zyl-server ~]# 

在這里插入圖片描述

? 思考:每次修改nginx配置文件,都需要進(jìn)入容器內(nèi)部十分麻煩,------》引入數(shù)據(jù)卷,通過(guò)路徑映射,在容器外部即可修改。

1.2、部署tomcat

1、下載tomcat
### --rm 用完即刪(一般用來(lái)測(cè)試)
docker run -it --rm tomcat:9.0###(這里使用這個(gè))
docker pull tomcat:9.02、運(yùn)行tomcat參數(shù)說(shuō)明:
-p 小寫(xiě)   主機(jī)端口:容器端口
-P 大寫(xiě)   隨機(jī)分配端口
i         交互
t         終端
d         后臺(tái)docker run -d -p 8012:8080 --name=mytomcat tomcat

在這里插入圖片描述

原因tomcat默認(rèn)是最小的鏡像,有的文件被刪除了。保證最小運(yùn)行環(huán)境。

解決:

1、進(jìn)入容器
[root@zyl-server ~]# docker exec -it mytomcat /bin/bash
root@f8e5b8f57b2b:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE	NOTICE	README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@f8e5b8f57b2b:/usr/local/tomcat# cd webapps
root@f8e5b8f57b2b:/usr/local/tomcat/webapps# ls
root@f8e5b8f57b2b:/usr/local/tomcat/webapps# 2、拷貝webapps.dist下的文件到webapps
root@f8e5b8f57b2b:/usr/local/tomcat# cp -r webapps.dist/* webapps/
root@f8e5b8f57b2b:/usr/local/tomcat# 

測(cè)試訪(fǎng)問(wèn):
在這里插入圖片描述

? 思考:部署項(xiàng)目,每次進(jìn)入容器內(nèi)部,是不是很麻煩?------》引入數(shù)據(jù)卷,通過(guò)路徑映射,在容器外部即可修改。

1.3、部署elasticsearch

? 思考:

es暴露端口多
es內(nèi)存占用大
es的數(shù)據(jù)一般要放置到安全目錄(掛載)
——————怎么解決?

1、下載、啟動(dòng)elasticsearch 
[root@zyl-server ~]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
Unable to find image 'elasticsearch:7.6.2' locally
7.6.2: Pulling from library/elasticsearch
ab5ef0e58194: Pull complete 
c4d1ca5c8a25: Pull complete 
941a3cc8e7b8: Pull complete 
43ec483d9618: Pull complete 
c486fd200684: Pull complete 
1b960df074b2: Pull complete 
1719d48d6823: Pull complete 
Digest: sha256:1b09dbd93085a1e7bca34830e77d2981521a7210e11f11eda997add1c12711fa
Status: Downloaded newer image for elasticsearch:7.6.2
89b955d50f2fd130d2e19e4048d30a8c38c6beb1023552be2af0c49b6fbf59512、查看當(dāng)前運(yùn)行的鏡像
[root@zyl-server ~]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
89b955d50f2f   elasticsearch:7.6.2   "/usr/local/bin/dock…"   7 seconds ago    Up 6 seconds    0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
f8e5b8f57b2b   tomcat                "catalina.sh run"        20 minutes ago   Up 20 minutes   0.0.0.0:8012->8080/tcp, :::8012->8080/tcp                                              mytomcat
926fd257ed88   nginx                 "/docker-entrypoint.…"   57 minutes ago   Up 57 minutes   0.0.0.0:8011->80/tcp, :::8011->80/tcp                                                  mynginx
[root@zyl-server ~]# 3、查看當(dāng)前cpu使用情況(50%)
docker status

在這里插入圖片描述

4、測(cè)試訪(fǎng)問(wèn)elasticsearch
[root@zyl-server ~]# curl localhost:9200
{"name" : "89b955d50f2f","cluster_name" : "docker-cluster","cluster_uuid" : "pJGBGgBpTOSEqmbG0uMUdg","version" : {"number" : "7.6.2","build_flavor" : "default","build_type" : "docker","build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f","build_date" : "2020-03-26T06:34:37.794943Z","build_snapshot" : false,"lucene_version" : "8.4.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}
[root@zyl-server ~]# 5、停止elasticsearch、增加內(nèi)存限制(-e ES_JAVA_OPTS="-Xms64m -Xmx512m"),最低占用64m內(nèi)存,最高占用512m內(nèi)存。[root@zyl-server ~]# docker stop 89b955d50f2f
89b955d50f2f
[root@zyl-server ~]# 6、再次運(yùn)行
[root@zyl-server ~]# docker run -d --name myelasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.27、再次查看內(nèi)存
[root@zyl-server ~]# docker stats 

在這里插入圖片描述

1.4、如何部署kibana–>連接elasticsearch

在這里插入圖片描述

1.5、部署可視化工具

1、portainer(使用這個(gè))
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer2、Rancher(CI/CD、持續(xù)部署、集成時(shí)再用這個(gè))

什么是portainer ?

portainer 是 Docker的圖形化界面管理工具!提供一個(gè)后臺(tái)面板供我們操作!

1、啟動(dòng)運(yùn)行[root@zyl-server ~]# docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
94cfa856b2b1: Pull complete 
49d59ee0881a: Pull complete 
a2300fd28637: Pull complete 
Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f
Status: Downloaded newer image for portainer/portainer:latest
99974acec5857c8559b5230e5c76063a82346a0e986780582ea6a40a7f62628c
[root@zyl-server ~]#  2、訪(fǎng)問(wèn)測(cè)試:http://192.168.234.10:8088

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

二、 鏡像加載原理

2.1、鏡像是什么

鏡像是一種輕量級(jí)、可執(zhí)行的獨(dú)立軟件包,用來(lái)打包軟件運(yùn)行環(huán)境和基于運(yùn)行環(huán)境開(kāi)發(fā)的軟件,它包含運(yùn)行某個(gè)軟件所需的所有內(nèi)容,包括代碼、運(yùn)行時(shí)、庫(kù)、環(huán)境變量和配置文件。

所有的應(yīng)用,直接打包docker鏡像,就可以直接跑起來(lái)!

如何得到鏡像:

從遠(yuǎn)程倉(cāng)庫(kù)下載
朋友拷貝給你
自己制作一個(gè)鏡像DockerFile

2.2、Docker鏡像加速原理

UnionFS(聯(lián)合文件系統(tǒng))

我們下載的時(shí)候看到的一層層就是這個(gè)!

UnionFS(聯(lián)合文件系統(tǒng)):Union文件系統(tǒng)(UnionFS)是一種分層、輕量級(jí)并且高性能的文件系統(tǒng),它支持對(duì)文件系統(tǒng)的修改作為一次提交來(lái)一層層的疊加,同時(shí)可以將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)下(unite several directories into a single virtual filesystem)。Union 文件系統(tǒng)是Docker 鏡像的基礎(chǔ)。鏡像可以通過(guò)分層來(lái)進(jìn)行繼承,基于基礎(chǔ)鏡像(沒(méi)有父鏡像),可以制作各種具體的應(yīng)用鏡像。

特性:一次同時(shí)加載多個(gè)文件系統(tǒng),但從外面看起來(lái),只能看到一個(gè)文件系統(tǒng),聯(lián)合加載會(huì)把各層文件系統(tǒng)疊加起來(lái),這樣最終的文件系統(tǒng)會(huì)包含所有底層的文件和目錄。

Docker鏡像加載原型

docker的鏡像實(shí)際上由一層一層的文件系統(tǒng)組成,這種層級(jí)的文件系統(tǒng)UnionFS。

bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引導(dǎo)加載kernel,Linux剛啟動(dòng)時(shí)會(huì)加載bootfs文件系統(tǒng),在Docker鏡像的最底層是bootfs。這一層與我們典型的Linux/Unix系統(tǒng)是一樣的,包含boot加載器和內(nèi)核。當(dāng)boot加載完成之后整個(gè)內(nèi)核就都在內(nèi)存中了,此時(shí)內(nèi)存的使用權(quán)已由bootfs轉(zhuǎn)交給內(nèi)核,此時(shí)系統(tǒng)也會(huì)卸載bootfs。

rootfs(root file system),在bootfs之上。包含的就是典型Linux系統(tǒng)中的/dev,/proc,/bin,/etc等標(biāo)準(zhǔn)目錄和文件。
rootfs就是各種不同的操作系統(tǒng)發(fā)行版,比如Ubuntu,Centos等等。

在這里插入圖片描述

平時(shí)我們安裝進(jìn)虛擬機(jī)的CentOS都是好幾個(gè)G,為什么Docker這里才200M?

在這里插入圖片描述

對(duì)于一個(gè)精簡(jiǎn)的OS,rootfs可以很小,只需要包含最基本的命令,工具和程序庫(kù)就可以了,因?yàn)榈讓又苯佑肏ost的kernel,自己只需要提供rootfs就可以了。

由此可見(jiàn)對(duì)于不同的linux發(fā)行版,bootfs基本是一致的,rootfs會(huì)有差別,因此不同的發(fā)行版可以公用bootfs。

(虛擬機(jī)是分鐘級(jí),容器是秒級(jí)!)

2.3、分層理解

分層的鏡像

我們可以去下載一個(gè)鏡像,注意觀(guān)察下載的日志輸出,可以看到是一層一層的在下載!

在這里插入圖片描述

思考:為什么Docker鏡像要采用這種分層的結(jié)構(gòu)呢?

最大的好處,我覺(jué)得莫過(guò)于是資源共享了!比如有多個(gè)鏡像都從相同的Base鏡像構(gòu)建而來(lái),那么宿主機(jī)只需在磁盤(pán)上保留一份base鏡像,同時(shí)內(nèi)存中也只需要加載一份base鏡像,這樣就可以為所有的容器服務(wù)了,而且鏡像的每一層都可以被共享。

查看鏡像分層的方式可以通過(guò) docker image inspect命令!

[root@zyl-server ~]# docker image inspect tomcat:9.0

所有的Docker 鏡像都起始于一個(gè)基礎(chǔ)鏡像層,當(dāng)進(jìn)行修改或增加新的內(nèi)容時(shí),就會(huì)在當(dāng)前鏡像層之上,創(chuàng)建新的鏡像層。

舉一個(gè)簡(jiǎn)單的例子,假如基于Ubuntu Linux 16.04創(chuàng)建一個(gè)新的鏡像,這就是新鏡像的第一層;如果在該鏡像中添加Python包,就會(huì)在基礎(chǔ)鏡像層之上創(chuàng)建第二個(gè)鏡像層;如果繼續(xù)添加一個(gè)安全補(bǔ)丁,就會(huì)創(chuàng)建第三個(gè)鏡像層。

該鏡像當(dāng)前已經(jīng)包含3個(gè)鏡像層,如下圖所示(這只是一個(gè)用于演示的很簡(jiǎn)單的例子)。

在這里插入圖片描述
在添加額外的鏡像層的同時(shí),鏡像始終保持是當(dāng)前所有鏡像的組合,理解這一點(diǎn)非常重要。下圖中舉了一個(gè)簡(jiǎn)單的例子,每個(gè)鏡像層包含3個(gè)文件,而鏡像包含了來(lái)自?xún)蓚€(gè)鏡像層的6個(gè)文件。

在這里插入圖片描述
上圖中的鏡像層跟之前圖中的略有區(qū)別,主要目的是便于展示文件。
下圖中展示了一個(gè)稍微復(fù)雜的三層鏡像,在外部看來(lái)整個(gè)鏡像只有6個(gè)文件,這是因?yàn)樽钌蠈又械奈募?是文件5的一個(gè)更新版本。
在這里插入圖片描述
這種情況下,上層鏡像層中的文件覆蓋了底層鏡像層中的文件。這樣就使得文件的更新版本作為一個(gè)新鏡像層添加到鏡像當(dāng)中。

Docker通過(guò)存儲(chǔ)引擎(新版本采用快照機(jī)制)的方式來(lái)實(shí)現(xiàn)鏡像層堆棧,并保證多鏡像層對(duì)外展示為統(tǒng)一的文件系統(tǒng)。

Linux上可用的存儲(chǔ)引擎有AUFS、Overlay2、Device Mapper、Btrfs以及ZFS。顧名思義,每種存儲(chǔ)引擎都基于Linux中對(duì)應(yīng)的文件系統(tǒng)或者塊設(shè)備技術(shù),并且每種存儲(chǔ)引擎都有其獨(dú)有的性能特點(diǎn)。

Docker在Windows 上僅支持 windowsfilter一種存儲(chǔ)引擎,該引擎基于NTFS文件系統(tǒng)之上實(shí)現(xiàn)了分層和CoW[1]。

下圖展示了與系統(tǒng)顯示相同的三層鏡像。所有鏡像層堆疊并合并,對(duì)外提供統(tǒng)一的視圖。

在這里插入圖片描述

特點(diǎn):

Docker鏡像都是只讀的,當(dāng)容器啟動(dòng)時(shí),一個(gè)新的可寫(xiě)層被加載到鏡像的頂部!
這一層就是我們通常說(shuō)的容器層,容器之下的都叫鏡像層!


💖The End💖點(diǎn)點(diǎn)關(guān)注,收藏不迷路💖
http://www.risenshineclean.com/news/49099.html

相關(guān)文章:

  • 珠海網(wǎng)站建設(shè)排名含有友情鏈接的網(wǎng)頁(yè)
  • 軟件公司網(wǎng)站源碼如何做好seo優(yōu)化
  • 網(wǎng)站當(dāng)前位置 樣式手游推廣平臺(tái)
  • 淘寶客網(wǎng)站應(yīng)該怎么做網(wǎng)站安全檢測(cè)
  • 策劃一個(gè)網(wǎng)站網(wǎng)站推廣策劃方案
  • 如何做國(guó)外外貿(mào)網(wǎng)站windows優(yōu)化大師收費(fèi)嗎
  • 開(kāi)封做網(wǎng)站推廣熱門(mén)關(guān)鍵詞排名查詢(xún)
  • 松崗建網(wǎng)站十八大禁用黃app入口
  • 網(wǎng)站制作咨詢(xún)電話(huà)百度引擎搜索
  • 房產(chǎn)中介如何做網(wǎng)站seo推廣服務(wù)哪家好
  • 騰訊云做淘客網(wǎng)站百度關(guān)鍵詞搜索排名代發(fā)
  • 網(wǎng)站備案密碼怎么找回自己開(kāi)一個(gè)培訓(xùn)機(jī)構(gòu)流程
  • 蘇州市建設(shè)工程交易中心網(wǎng)站河南百度關(guān)鍵詞優(yōu)化排名軟件
  • 小程序怎么做微網(wǎng)站鏈接微信上如何投放廣告
  • 營(yíng)銷(xiāo)手機(jī)網(wǎng)站seo技術(shù)自學(xué)
  • 簡(jiǎn)述使用asp建設(shè)動(dòng)態(tài)網(wǎng)站頁(yè)面優(yōu)化
  • 招聘網(wǎng)站設(shè)計(jì)方案培訓(xùn)網(wǎng)站搭建
  • 簡(jiǎn)約型網(wǎng)站建設(shè)站外推廣方式有哪些
  • 企業(yè)為什么做網(wǎng)站如何做網(wǎng)站賺錢(qián)
  • saas 做網(wǎng)站qq群怎么優(yōu)化排名靠前
  • 免費(fèi)個(gè)人簡(jiǎn)歷表電子版武漢企業(yè)seo推廣
  • 做網(wǎng)站平臺(tái)成本石家莊今天最新新聞?lì)^條
  • 網(wǎng)站如何做點(diǎn)擊鏈接廣州aso優(yōu)化公司 有限公司
  • c2b模式的電商平臺(tái)網(wǎng)站有哪些好看的友情鏈接代碼
  • 友情鏈接添加在網(wǎng)站中有什么用友情鏈接交換平臺(tái)有哪些
  • 怎樣做外貿(mào)網(wǎng)站建設(shè)怎么出售友情鏈接
  • 找個(gè)網(wǎng)站開(kāi)發(fā)的師傅外鏈工具xg
  • 易語(yǔ)言可以做網(wǎng)站后端東莞市優(yōu)速網(wǎng)絡(luò)科技有限公司
  • 舟山網(wǎng)站開(kāi)發(fā)網(wǎng)絡(luò)營(yíng)銷(xiāo)和網(wǎng)上銷(xiāo)售的區(qū)別
  • 高端建設(shè)網(wǎng)站公司哪家好網(wǎng)頁(yè)版百度云