激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - Docker管理之碎片知識整理小結

Docker管理之碎片知識整理小結

2022-01-07 19:51羌俊恩 服務器知識

本文旨在匯總整理Docker日常管理之知識碎片,以便日后回顧查看參考。文中通過示例代碼介紹的非常詳細,感興趣的小伙伴們可以參考一下

一、概述

本文旨在匯總整理Docker日常管理之知識碎片,以便日后回顧查看參考。

二、應用示例

2.1、Docker容器隔離之Namespace

Namespace:是容器虛擬化依賴的Linux 主要核心技術,用于各容器之間的隔離。主要通過以下六項隔離技術來實現:有兩個偽文件系統:/proc和/sys/

UTS: 允許每個container擁有獨立的hostname(主機名)和domainname(域名),使其在網絡上可以被視作一個獨立的節點而非Host上的一個進程。

IPC:contaner中進程交互還是采用linux常見的進程間交互方法,包括常見的信號量,消息隊列和共享內存。container的進程間交互實際上還是host上具有相同pid中的進程交互。

● PID:不同用戶的進程就是通過pid namesapce隔離開的,且不同namespace中可以有相同pid。所有的LXC(linux containers)進程在docker中的父進程為docker進程,每個LXC進程具有不同的namespace。

● NET:

● MNT:文件系統的掛載點。

● USRE:每個container可以有不同的user和groupid,也就是說可以在container內部用container內部的用戶執行程序而非Host上的用戶。

2.2、Docker之自由限制cgroup

eg1:docker run -it -m 200M --memory-swap 300M centos //-m或–memory:設置內存的使用限額,–memory-swap:設置swap(交換分區)的使用限額

eg2: docker run -it --name containerB -c 512 centos //containerB,cpu權重限制為512;-c或者–cpu-shares設置容器實驗cpu的權重。如果不設置默認是1024

eg3: docker run -it --name testA --device-write-bps /dev/sda:30MB centos //容器testA限制該磁盤每秒寫入的數量為為30MB;

其他參數:

-bps:每秒讀寫的數據量。byte per second
-iops:每秒io的次數。 io per second

--device-read-bps:設置讀取設備的bps
--device-write-bps:設置寫入設備的bps

--device-read-iops:設置讀取設備的iops
--device-write-iops:設置寫入設備的iops

2.3、給運行中的容器設置端口映射

有時我們想不停止容器的情況下,調整容器映射端口,那怎樣在容器使用中,映射容器內應用的服務端口到本機宿主機器呢?

當容器中運行一些網絡應用,要讓外部訪問這些應用時,可以通過 -P 或 -p 參數兩種方式來指定端口映射。使用 -P(大) 參數時,Docker 會隨機映射一個宿主本地端口到內部容器開放的網絡端口上;使用 -p(小) 參數時,可以指定要映射的端口,并且在一個指定的端口上只可以綁定一個容器。支持的格式有:

IP:HostPort:ContainerPort
IP:ContainerPort
HostPort:ContainerPort

下面我們來分別舉例說明:

eg1:docker run -d -P nginx //docker ps查看會發現,宿主機本地的隨機分配了一個 3**** 端口被映射到了容器的 80 端口上,在本機瀏覽器訪問 http://localhost:3**** 就會出現 nginx 歡迎頁面

eg2:docker run -d -p 8080:80 nginx //使用 docker ps 可看到,本地主機的 8080 端口被映射到了容器的 80 端口

驗證:命令格式:docker port CONTAINER [PRIVATE_PORT[/PROTO]]

使用 docker inspect + 容器ID 獲取容器的具體信息:

eg3:給運行中的容器添加映射端口

?
1
2
3
4
5
6
7
8
docker inspect \`container_name` | grep IPAddress   //將container_name 換成實際環境中的容器名,獲得容器的IP地址
 
iptables -t nat -A  DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000 //將容器的8000端口映射到docker主機的8001端口
 
或:
docker commit container_id foo/live  //提交一個運行中的容器為鏡像
 
docker run -d -p 8000:80 foo/live /bin/bash  //運行鏡像并添加端口映射,宿主8000到容器80,

2.4、修改運行中docker容器中的內容

docker中宿主機與容器(container)互相拷貝傳遞文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker cp mycontainer:/opt/testnew/file.txt /opt/test/  //從容器拷貝文件到宿主機
 
docker cp /opt/test/file.txt mycontainer:/opt/testnew/   //從宿主機拷貝文件到容器
 
sudo docker commit -m "描述內容" -a "author name" 32555789dd00 aipaper/devinz83:v2  //-m 來指定提交的說明信息,跟我們使用的版本控制工具一樣;-a 可以指定更新的用戶信息;之后是用來創建鏡像的容器的 ID;最后指定目標鏡像的倉庫名和 tag 信息。創建成功后會返回這個鏡像的 ID 信息
 
docker images  //驗證
REPOSITORY                                  TAG
aipaper/devinz83                            v2
 
#修改容器配置文件yaml
vi /opt/docker/yml/docker-compose-resty-redis.yml
 
docker stack deploy --compose-file=/opt/docker/yml/docker-compose-resty-redis.yml resty_redis  //使用新修改后的鏡像部署了docker應用

注:不管容器有沒有啟動,docker cp都會生效;完成后,使用 docker commit 命令來提交更新后的副本。

之后更新容器的yml文件,更新image為新的對象:

Docker管理之碎片知識整理小結

2.5、Docker容器遷移到其他服務器

有時我們會由于各種原因,比如硬件升級、數據中心變化,資源限制等因素,需要將當前docker容器所在遷移到其他資源池或主機。

1)導出和導入容器:

導出容器:即從容器的文件系統創建壓縮文件,導出的文件保存為“gzip”文件;之后通過文件傳輸工具(如scp或rsync)將壓縮文件復制到新服務器。再在新服務器中,將這個gzip文件導入到一個新容器中。

?
1
2
3
4
5
docker export container-name | gzip > container-name.gz
 
zcat container-name.gz | docker import - container-name
 
docker run -d container-name /bin/bash  //使用“docker run”命令訪問在新服務器中創建的新容器

:導出容器工具的一個缺點是,它不導出容器的端口和變量,也不導出包含容器的底層數據。當嘗試在另一臺服務器中加載容器時,這可能會導致錯誤。對此,我們可另考慮使用Docker鏡像遷移來將容器從一臺服務器遷移到另一臺服務器。

2)容器鏡像遷移:

即我們遷移容器關聯到的鏡像到新的資源池,這也是將Docker容器遷移到另一臺服務器的最常用方法。對于要遷移的容器,首先使用“Docker commit”命令將其Docker鏡像保存到壓縮文件中。

?
1
docker commit container-id image-name  //生成的鏡像將被壓縮

之后將上述鏡像上傳到新服務器上,在新服務器中,將使用“docker run”創建一個新容器。
使用此方法,數據卷不會被遷移,但它會保留,在容器內創建的應用程序的數據。

3)先保存,再加載鏡像

docker鏡像是應用程序的代碼、庫、配置文件等的包。Docker容器是由這些鏡像創建的。

可以使用“docker save”壓縮鏡像并將其遷移到新服務器。之后在新服務器中,使用“docker load”將壓縮鏡像文件用于創建新鏡像。

?
1
2
3
docker save image-name > image-name.tar
 
cat image-name.tar | docker load

4)遷移數據卷:

Docker容器中的數據卷是共享目錄,其中包含特定于容器的數據。卷中的數據是持久的,在容器重新創建期間不會丟失。

使用導出或提交工具將Docker容器或鏡像從一臺服務器遷移到另一臺服務器時,不會遷移基礎數據卷。在這種情況下,包含數據的目錄將手動遷移到新服務器。然后在新服務器創建容器,引用該目錄作為其數據卷。

另一個簡單的方法是通過在“docker run”命令中傳遞“-volumes from”參數來備份和恢復數據卷。

?
1
2
3
docker run --rm --volumes-from datavolume-name -v $(pwd):/backup image-name tar cvf backup.tar /path-to-datavolume
 
docker run --rm --volumes-from datavolume-name -v $(pwd):/backup image-name bash -c "cd /path-to-datavolume && tar xvf /backup/backup.tar --strip 1"

上述命令中:datavolume-name是/path/to/volume,此命令提供數據卷的備份。要指定工作目錄,還可以指定-w/backup。在/backup文件夾中生成的備份可以通過scp或ftp工具復制到新服務器。然后提取復制的備份并將其還原到新容器中的數據卷中。

5)遷移整個Docker容器:

以上方法僅適用于單個容器。但是將所有容器都要從一臺服務器遷移到另一臺服務器的情況下,我們采用另一種方法。此方法包括將整個docker目錄(“/var/lib/docker”)復制到新服務器。為了使這種方法成功,需要確定幾個關鍵點。

1、保留文件夾的權限和所有權。
2、遷移前停止Docker服務。
3、驗證兩臺服務器中的Docker版本是否兼容。
4、遷移前后驗證容器列表和功能。
5、環境變量和其他配置文件的路徑。
6、如果此方法由于任何故障而無法工作,我們將配置自定義腳本以將容器和鏡像從一臺服務器遷移到另一臺服務器。

2.6、查看docker鏡像中文件

?
1
2
3
4
docker attach ContainerID  //需要對應的container是運行中的,不處于stop狀態
 
##對于未運行的,可以把Docker鏡像中的文件復制到宿主來看,示例如下
sudo docker cp nginx-ubuntu-container:/etc/apt/sources.list ~/Documents/

2.7、運行容器:docker run常用選項

語法:docker run [option] 鏡像名 [向啟動容器中傳入的命令]

常用可選參數說明:

  • -i 表示以“交互模式”運行容器
  • -t 表示容器啟動后會進入其命令行。加入這兩個參數后,容器創建就能登錄進去。即 分配一個偽終端。
  • --name 為創建的容器命名
  • -v 表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄,即 宿主機目錄:容器中目錄),可以使 用多個-v 做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后 共享到容器上。
  • -d 在run后面加上-d參數,則會創建一個守護式容器在后臺運行(這樣創建容器后不 會自動登錄容器,如果只加-i -t 兩個參數,創建后就會自動進去容器)。
  • -p 表示端口映射,前者是宿主機端口,后者是容器內的映射端口。可以使用多個-p 做多個端口映射
  • -e 為容器設置環境變量
  • --network=host 表示將主機的網絡環境映射到容器中,容器的網絡與主機相同

到此這篇關于Docker管理之碎片知識整理小結的文章就介紹到這了,更多相關Docker管理內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/ximenjianxue/article/details/121544310

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性欧美性欧美 | www.91pron| 国产精品久久国产精品 | 全黄性色大片 | 噜噜噜躁狠狠躁狠狠精品视频 | 草操影院 | 国产乱色精品成人免费视频 | 最新在线黄色网址 | 国产羞羞视频在线观看 | 在线a视频| 中文字幕涩涩久久乱小说 | 理论片中文字幕 | 神马视频我不卡 | 日本黄色a视频 | 亚洲日色 | 久色乳综合思思在线视频 | 欧美a级在线免费观看 | 一级做a爰片性色毛片2021 | 国产精品久久久久久久久久电影 | 中文欧美日韩 | 国产中文99视频在线观看 | 久久精品亚洲国产奇米99 | 香蕉在线播放 | 久草视频福利在线观看 | 日本在线播放一区二区三区 | 亚洲成人精品久久久 | 污片在线观看视频 | 欧美一级毛片大片免费播放 | 国产欧美日韩久久久 | 成人国产精品齐天大性 | 精品国产一区二区三区四区在线 | 福利一区二区三区视频在线观看 | 欧美一级三级在线观看 | 久久精品小短片 | caoporn国产一区二区 | 黄色免费小网站 | 色婷婷综合久久久久中文 | av在线免费观看中文字幕 | www.99av| 制服丝袜日日夜夜 | 免费观看又色又爽又黄的崩锅 |