Hyper-V + Docker 容器化部署與應(yīng)用

基于 Hyper-V 與 Docker 的容器化部署與應(yīng)用


前言

本文僅提供 Hyper-V 與 Docker 最低限度應(yīng)用的指導(dǎo)柏肪,詳細(xì)內(nèi)容請(qǐng)參考官方文檔

關(guān)于 Hyper-V

Hyper-V 提供 硬件虛擬化。 這意味著每個(gè)虛擬機(jī)都在虛擬硬件上運(yùn)行宿礁。 Hyper-V 允許你創(chuàng)建虛擬硬盤驅(qū)動(dòng)器梆靖、虛擬交換機(jī)以及許多其他虛擬設(shè)備,所有這些都可以添加到虛擬機(jī)中测僵。

  • 優(yōu)勢(shì)

相比傳統(tǒng)虛擬機(jī)沾谜,Hyper-V 極大地 減少發(fā)送 I/O 請(qǐng)求所需的開銷窿锉。使高 I/O 工作負(fù)載的 CPU 開銷大大降低良风。

  • 局限

需要使用 GPU 進(jìn)行處理的游戲或應(yīng)用程序可能無法良好運(yùn)行统诺。

運(yùn)行環(huán)境

宿主機(jī)
  • Windows Server 2019 x64
虛擬機(jī)

Hyper-V 的啟用

Windows10 已經(jīng)附帶虛擬組件 Hyper-V
默認(rèn)情況下 Hyper-V 組件并沒有被啟用,需手動(dòng)啟用。

  1. 服務(wù)器管理器 > 添加角色和功能
image.png
  1. 勾選 Hyper-V,待安裝完成后重啟系統(tǒng)

Hyper-V 虛擬機(jī)創(chuàng)建

  • 以宿主機(jī) Windows Server 2019 + 虛擬機(jī) Ubuntu 20.04.1為例:

  • 開始 > Windows 管理工具 > Hyper-V 管理器

image.png
  • Hyper-V 管理器 > 服務(wù)器-右鍵 > 新建 > 虛擬機(jī)
image.png
  • 指定名稱和位置
image.png
  • 指定虛擬機(jī)代數(shù)

由于 Hyper-V 第二代虛擬機(jī)的兼容性尚不明確嵌溢,此處建議選擇第一代虛擬機(jī)

image.png
  • 分配內(nèi)存

此處填寫虛擬機(jī)所需的啟動(dòng)內(nèi)存用量学少,強(qiáng)烈建議勾選上 為此虛擬機(jī)使用動(dòng)態(tài)內(nèi)存

關(guān)于 Hyper-V 動(dòng)態(tài)內(nèi)存管理

動(dòng)態(tài)內(nèi)存管理 是 Hyper-V R2 提供的一項(xiàng)新功能和特性,目前只有Windows Server 2008 R2 Service Pack 1((SP1)以上版本(Windows Server 2012)支持該功能绒疗,該功能能夠自動(dòng)平衡服務(wù)器上運(yùn)行的虛擬機(jī)所占用的物理內(nèi)存大小吓蘑。此功能可以在管理員針對(duì)不同虛擬機(jī)所指定的內(nèi)存范圍內(nèi),根據(jù)虛擬機(jī)中的應(yīng)用優(yōu)先級(jí)來 自動(dòng)調(diào)整虛擬機(jī)對(duì)物理內(nèi)存的占用大小棋嘲,在應(yīng)用性能和內(nèi)存占用大小方面進(jìn)行自動(dòng)平衡并達(dá)到性能優(yōu)化的目的痪伦。

image.png
  • 配置網(wǎng)絡(luò)

暫不配置,網(wǎng)絡(luò)相關(guān)配置詳見后文

image.png
  • 連接虛擬硬盤
image.png
  • 安裝選項(xiàng)

選擇 從可啟動(dòng)的 CD/DVD-ROM 安裝操作系統(tǒng)辉哥,并選擇已下載好的系統(tǒng)鏡像文件。

image.png
  • 完成虛擬機(jī)創(chuàng)建
image.png

安裝 Ubuntu

  • 選擇語(yǔ)言
image.png
  • 選擇鍵盤布局
image.png
  • 網(wǎng)卡配置

默認(rèn)即可

image.png
  • 代理配置

不配置代理

image.png
  • Ubuntu 鏡像配置

此處建議使用 清華大學(xué) Ubuntu 鏡像https://mirrors.tuna.tsinghua.edu.cn/ubuntu

image.png
  • 硬盤選擇

默認(rèn)即可

image.png
  • 硬盤分區(qū)

默認(rèn)即可

image.png
  • 服務(wù)器相關(guān)信息配置

務(wù)必牢記初始賬戶與密碼

image.png
  • 安裝 OpenSSh server

為便于未來遠(yuǎn)程終端操作與文件傳輸攒射,建議安裝醋旦。

image.png
  • 安裝第三方常用工具包

為容器化部署作準(zhǔn)備会放,此處可選 microk8sdocker 進(jìn)行安裝

image.png
  • 待安裝完成后重啟虛擬機(jī)
image.png

Hyper-V 網(wǎng)絡(luò)配置

  • Hyper-V 管理器 > 服務(wù)器-右鍵 > 虛擬交換機(jī)管理器
image.png
  • 選擇虛擬交換機(jī)類型
關(guān)于 Hyper-v 虛擬交換機(jī)類型
  • 外部:虛擬機(jī)可以連接外部外網(wǎng)(與宿主機(jī)的網(wǎng)絡(luò)相同)饲齐,允許與其他虛擬機(jī)互相通信。
  • 內(nèi)部:只能在虛擬機(jī)之間或者虛擬機(jī)與宿主機(jī)之間進(jìn)行網(wǎng)絡(luò)通信咧最,無法連接外部網(wǎng)絡(luò)捂人。
  • 專用:虛擬機(jī)與虛擬機(jī)之間的局域網(wǎng),宿主機(jī)無法對(duì)其訪問矢沿。

此處默認(rèn)可選用 外部 類型滥搭。

如果宿主機(jī)不是 DHCP 動(dòng)態(tài) IP 而是靜態(tài) IP 網(wǎng)絡(luò)配置的情況下(不進(jìn)行新的 IP 配置),使用 外部 類型在可能會(huì)導(dǎo)致宿主機(jī)與虛擬機(jī)都無法連接外部網(wǎng)絡(luò)捣鲸。此情況下瑟匆,應(yīng)選擇使用 內(nèi)部 類型,并將宿主網(wǎng)絡(luò)共享至內(nèi)部虛擬交換機(jī)摄狱。

PS:此處以 內(nèi)部 類型為例

image.png
  • 創(chuàng)建虛擬交換機(jī)
image.png
  • 虛擬機(jī)-右鍵 > 設(shè)置
image.png
  • 網(wǎng)絡(luò)適配器

在網(wǎng)絡(luò)適配器一欄選擇剛剛新建的虛擬交換機(jī)

image.png
  • 網(wǎng)絡(luò)連接 > 帶有外部網(wǎng)絡(luò)連接的網(wǎng)卡-右鍵 > 屬性
image.png
  • 屬性 > 共享

勾選 允許其他網(wǎng)絡(luò)用戶通過此計(jì)算機(jī)的 Internet 來連接允許其他網(wǎng)絡(luò)用戶控制或禁用共享的 Internet 連接脓诡,并在 家庭網(wǎng)絡(luò)連接 中選擇剛剛創(chuàng)建的內(nèi)部虛擬交換機(jī)。

image.png
  • 進(jìn)入虛擬機(jī)媒役,確認(rèn)外部網(wǎng)絡(luò)對(duì)內(nèi)部虛擬交換機(jī)的共享已經(jīng)完成
image.png
  • 啟動(dòng)虛擬機(jī)確認(rèn)安裝完成

此前選擇的第三方工具會(huì)在首次啟動(dòng)后聯(lián)網(wǎng)下載安裝祝谚,待安裝完成后即可使用

image.png

Hyper-V 虛擬機(jī)與宿主機(jī)的文件傳輸

Linux

在 Linux 下宿主機(jī)可直接使用 SSH 協(xié)議對(duì)虛擬機(jī)進(jìn)行終端操作與文件傳輸

  • 宿主機(jī)上生成 ssh 公鑰與密鑰
ssh-keygen
  • 虛擬機(jī)上生成 ssh 公鑰與密鑰
ssh-keygen
  • 在虛擬機(jī)內(nèi)配置宿主機(jī)公鑰
cd ~/.ssh
nano authorized_keys
image.png
  • 修改虛擬機(jī) sshd 配置
cd /etc/ssh
nano sshd_config

配置以下內(nèi)容

PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
image.png
  • 重啟 sshd 服務(wù)
service sshd restart
  • 待服務(wù)重啟完成后,即可使用 puTTY 或 MobaXterm 等支持 ssh 協(xié)議的連接工具進(jìn)行操作
image.png

Windows

在 Windows 下有兩種文件傳輸方式

1. 共享文件夾
  • 在宿主機(jī)上選擇文件夾進(jìn)行共享
image.png
  • 在虛擬機(jī)上添加宿主機(jī)的共享文件夾
image.png
  • 完成配置后即可通過共享文件夾進(jìn)行宿主機(jī)與虛擬機(jī)的文件傳輸
image.png
2. RDP
  • 虛擬機(jī)開啟遠(yuǎn)程桌面功能
image.png
  • 宿主機(jī)即可通過遠(yuǎn)程桌面 RDP 連接虛擬機(jī)進(jìn)行文件傳輸
image.png

Docker 容器化部署

關(guān)于 Docker

Docker 是一個(gè)開放平臺(tái)酣衷,用于開發(fā)應(yīng)用交惯、交付(shipping)應(yīng)用、運(yùn)行應(yīng)用穿仪。 Docker允許用戶將基礎(chǔ)設(shè)施(Infrastructure)中的應(yīng)用單獨(dú)分割出來席爽,形成更小的顆粒(容器),從而提高交付軟件的速度啊片。

Docker 加速鏡像配置

  • 添加當(dāng)前用戶至 docke 用戶組(可選)
sudo usermod -aG docker [用戶名]
  • 配置 docker 鏡像加速器
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

向 daemon.json 文件添加以下內(nèi)容:

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "log-opts": {"max-size":"500m", "max-file":"3"}
}
image.png
  • 修改完成后重啟 docker 服務(wù):
sudo systemctl restart docker

定義 Docker 容器

關(guān)于 Docker 容器

Docker 容器與虛擬機(jī)類似但在原理上不同只锻。容器是將操作系統(tǒng)層虛擬化,具有便攜性紫谷、能夠高效地利用服務(wù)器齐饮。由于容器的標(biāo)準(zhǔn)化捐寥,因此它可以 無視基礎(chǔ)設(shè)施的差異,部署到任何一個(gè)地方祖驱。

關(guān)于 Docker Compose

Docker Compose 是用于定義和運(yùn)行多容器 Docker 應(yīng)用程序的工具握恳。通過 Docker Compose,可以使用 YML 文件來配置應(yīng)用程序需要的所有服務(wù)捺僻。并且使用一個(gè)命令就可以從 YML 文件配置中創(chuàng)建并啟動(dòng)所有服務(wù)乡洼。

  • 新建 docker-compose.yml 文件
mkdir ~/gitlab
nano ~/gitlab/docker-compose.yml
  • 填寫容器定義內(nèi)容
version: '3.5'
services:
  gitlab:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.7.225:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    ports:
      - '8929:8929'
      - '2224:22'
    volumes:
      - '/opt/gitlab/config:/etc/gitlab'
      - '/opt/gitlab/logs:/var/log/gitlab'
      - '/opt/gitlab/data:/var/opt/gitlab'
    logging: 
      options: 
        max-size: 1g
    networks:
      - gitlab

  gitlab-runner:
    image: gitlab/gitlab-runner:alpine
    restart: unless-stopped
    depends_on:
      - gitlab
    privileged: true
    volumes:
      - /opt/gitlab-runner/config:/etc/gitlab-runner
      - /opt/gitlab-runner/run/docker.sock:/var/run/docker.sock
      - /opt/gitlab-runner/docker:/bin/docker
    logging: 
      options: 
        max-size: 1g
    networks:
      - gitlab

networks:
  gitlab:

啟動(dòng) Docker 容器

  • 啟動(dòng)容器
cd ~/gitlab
sudo docker-compose up
image.png
  • 待首次鏡像拉取完成容器啟動(dòng)后即可訪問服務(wù)
image.png

相關(guān)鏈接


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市匕坯,隨后出現(xiàn)的幾起案子束昵,更是在濱河造成了極大的恐慌,老刑警劉巖醒颖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妻怎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡泞歉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門匿辩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腰耙,“玉大人,你說我怎么就攤上這事铲球⊥ε樱” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵稼病,是天一觀的道長(zhǎng)选侨。 經(jīng)常有香客問我,道長(zhǎng)然走,這世上最難降的妖魔是什么援制? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮芍瑞,結(jié)果婚禮上晨仑,老公的妹妹穿的比我還像新娘。我一直安慰自己拆檬,他們只是感情好洪己,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著竟贯,像睡著了一般答捕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屑那,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天拱镐,我揣著相機(jī)與錄音艘款,去河邊找鬼。 笑死痢站,一個(gè)胖子當(dāng)著我的面吹牛磷箕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阵难,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岳枷,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了呜叫?” 一聲冷哼從身側(cè)響起空繁,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎朱庆,沒想到半個(gè)月后盛泡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡娱颊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年傲诵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱硕。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拴竹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出剧罩,到底是詐尸還是另有隱情栓拜,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布惠昔,位于F島的核電站幕与,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏镇防。R本人自食惡果不足惜啦鸣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望营罢。 院中可真熱鬧赏陵,春花似錦、人聲如沸饲漾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)考传。三九已至吃型,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間僚楞,已是汗流浹背勤晚。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工枉层, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赐写。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓鸟蜡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親挺邀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子揉忘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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