操bb国片四区三区,亚洲一片内射无码,91短视频福利导航,蜜桃臀成人免费在线视频观看

Docker容器實(shí)戰(zhàn)之?dāng)?shù)據(jù)持久化+網(wǎng)絡(luò)模式+資源限制

2021-11-03 16:04:46 shuai.chang

睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商

docker容器數(shù)據(jù)持久化的三種方式

docker提供三種方式將數(shù)據(jù)從宿主機(jī)掛載到容器中:

volumes: Docker管理宿主機(jī)文件系統(tǒng)的一部分(/var/lib/docker/vollumes)保存數(shù)據(jù)的最佳方式。

bind mounts: 將宿主機(jī)上的任意位置的文件或者目錄掛載到容器中。

tmpfs::掛載存儲(chǔ)在主機(jī)系統(tǒng)的內(nèi)存中,而不會(huì)寫入主機(jī)的文件系統(tǒng)。如果不希望將數(shù)據(jù)持久存儲(chǔ)在任何位置,可以使用tmpfs,同時(shí)避免寫入容器可寫層以提高容器性能。

睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商
docker   volume  create nginx_vol   #使用docker自帶的volime數(shù)據(jù)持久化
ls  /var/lib/docker/volumes/nginx_vol/

可以看到數(shù)據(jù)目錄為_data

睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商
測試實(shí)例1 (volumes方式)
docker run -d --namenginx-ceshi  -p 888:80 --mount   -v nginx-ceshi:/usr/share/nginx/htmlnginx
或者
docker run -d --name  nginx-ceshi  -p 888:80 --mount  src=nginx-ceshi,dst=/usr/share/nginx/html  nginx
#src:指定/var/lib/docker/volumes/下數(shù)據(jù)持久目錄名稱,dst:指定容器內(nèi)數(shù)據(jù)持久目錄
docker  inspect nginx-ceshi
睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商

創(chuàng)建完容器可以完整看到剛才持久化的數(shù)據(jù)目錄信息

驗(yàn)證:

cd  /var/lib/docker/volumes/nginx-ceshi/_data
echo  "helllo world nginx"  >  index.html
http://192.168.106.100:888/ #說明持久化成功
睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商
實(shí)測實(shí)例二 Bind Mounts方式
docker  run  -d -it  --name=nginx-test  --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html/  nginx
docker  run -d -it  --name=nginx-test  -v /root/html:/usr/share/nginx/html/  nginx
睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商
睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商
#兩種方式都可以, -v +絕對(duì)路徑就是bind模式     -v +文件名就是volumes模式
#Bind模式源文件必須存在,不存在無法創(chuàng)建容器
#容器被掛載的目錄如果不為空則被隱藏。

docker容器之網(wǎng)絡(luò)模式

bridge

-net=bridge 默認(rèn)的網(wǎng)絡(luò)模式,Docker啟動(dòng)后創(chuàng)建一個(gè)docker0網(wǎng)橋,默認(rèn)創(chuàng)建的容器也是添加到這個(gè)網(wǎng)絡(luò)中

host

-net=host 容器不會(huì)獲得一個(gè)獨(dú)立的netwrok namespace,而是與宿主機(jī)共用一個(gè)。這就以為這容器不會(huì)有自己的網(wǎng)卡

none

-net=none  獲取獨(dú)立的network namespace,但是不為容器進(jìn)行任何網(wǎng)絡(luò)配置,需要我們手動(dòng)配置。

container

-net=container:Name/ID  與指定的容器使用同一個(gè)network  namespace,具有同樣配置信息,兩個(gè)容器除了網(wǎng)絡(luò),其他還是隔離的

用法:

docker run -itd   --name  zd  -p 99:80 busybox
docker  run -itd  --name nginx-zd  --net container:zd nginx
curl  192.168.106.100:99 #使用container將nginx網(wǎng)絡(luò)使用zd網(wǎng)絡(luò)代替

自定義網(wǎng)絡(luò):與默認(rèn)的bridge原理一樣,但是自定義網(wǎng)絡(luò)具備內(nèi)部DNS發(fā)現(xiàn),可以通過容器名或者主機(jī)名容器之間網(wǎng)絡(luò)通信。

容器網(wǎng)絡(luò)訪問原理如下圖所示

docker  network create zf-100  
睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商

docker容器之資源限制

docker容器可以對(duì)資源做一些限制,防止容器消耗完宿主機(jī)的資源。對(duì)容器的安全做一些隔離

常用的資源限制選項(xiàng)

-m ,  -memory     容器可以使用的最大內(nèi)存量
-memory-swap        允許交換到磁盤的內(nèi)存量(物理內(nèi)存-swap內(nèi)存=真實(shí)swap空間)
-oom-kill-disable      禁用OOM killer (找出最多消耗資源的進(jìn)程并殺掉)
-cpus                  可以使用的CPU數(shù)量
-cpuset-cpus            限制容器使用特定的CPU核心,(0-3,0,1)
-cpu-shares            CPU共享(相對(duì)權(quán)重)

實(shí)例

docker run -d --name web03  --memory="500m"  --memory-swap="600m"  --oom-kill-disable  nginx

#限制內(nèi)存使用500m,大于500時(shí)使用swap交換空間100m
docker stats --no-stream  web03  #查看容器內(nèi)存使用詳細(xì)信息
睿智創(chuàng)新RAIZ,一體化IT服務(wù)提供商
#限制使用一個(gè)CPU
docker run -d --name  web01  --cpus="1"  nginx

#允許使用最多百分之50%的CPU
docker run -d --name  web01  --cpus=".5"  nginx




我要咨詢