自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux容器技術(shù)原理和使用

系統(tǒng) Linux
一個(gè)物理機(jī)器需要虛擬化出多個(gè)環(huán)境或者容器。通過提供一種創(chuàng)建和進(jìn)入容器的方式,操作系統(tǒng)讓應(yīng)用程序就像在獨(dú)立的機(jī)器上運(yùn)行一樣,但又能共享很多底層的資源。

1.1 隔離和共享

在一個(gè)多員共用的開發(fā)環(huán)境或者一臺(tái)服務(wù)器運(yùn)行多個(gè)邏輯隔離的服務(wù)器進(jìn)程。誰的運(yùn)行環(huán)境也不希望影響到另一個(gè)誰。也就是一個(gè)物理機(jī)器需要虛擬化出多個(gè)環(huán)境或者容器。通過提供一種創(chuàng)建和進(jìn)入容器的方式,操作系統(tǒng)讓應(yīng)用程序就像在獨(dú)立的機(jī)器上運(yùn)行一樣,但又能共享很多底層的資源。

1.2 虛擬化vs容器

傳統(tǒng)的虛擬化技術(shù)是通過硬件模擬或者操作系統(tǒng)軟件實(shí)現(xiàn),而容器技術(shù)可以比傳統(tǒng)虛擬化更輕量級(jí)。

容器在提供隔離的同時(shí),還通過共享這些資源節(jié)省開銷,這意味著容器比真正的虛擬化的開銷要小得多。例如,可以有效地共享公共文件(比如 glibc)的頁緩存,因?yàn)樗腥萜鞫际褂孟嗤膬?nèi)核,而且所有容器還常常共享相同的 libc 庫(取決于容器配置)。這種共享常??梢詳U(kuò)展到目錄中其他不需要寫入內(nèi)容的文件。

和傳統(tǒng)虛擬化相比,容器啟動(dòng)很快,由于共享系統(tǒng)資源,一臺(tái)主機(jī)可以運(yùn)行上千個(gè)容器,并且容器鏡像用類似git分發(fā)思想,用戶更容易創(chuàng)建,分發(fā),更新存儲(chǔ)這些鏡像。

1.3 前世和今生

今生是docker大流行的時(shí)代,而前世就是早于1982年的chroot工具,以及后面經(jīng)過改進(jìn)并且現(xiàn)在還在使用的lxc技術(shù)。早期的docker的代碼實(shí)現(xiàn)基于LXC(0.9之前)。

Linux容器功能是基于 cgroups 和 Namespace 來實(shí)現(xiàn)的. 所以要了解 Linux 容器必須先了解 cgroup 和 Namespace.

2.1、cgroups(控制組)

cgroups 是將進(jìn)程分組管理的內(nèi)核功能.通過cgroups可以隔離進(jìn)程, 同時(shí)還可以控制進(jìn)程的資源占用(CPU, 內(nèi)存等等)情況在操作系統(tǒng)底層限制物理資源,起到 Container 的作用。進(jìn)程可用的cpu資源由cpuset指定。

2.2、Namespace (命名空間)

Namespace讓每個(gè)進(jìn)程組有獨(dú)立的PID, IPC和網(wǎng)絡(luò)空間.Namespace通過 clone系統(tǒng)調(diào)用來實(shí)現(xiàn)的.

clone系統(tǒng)調(diào)用的第3個(gè)參數(shù)flags就是通過設(shè)置Namespace來劃分資源的.

LXC依賴于epel-release的安裝,EPEL(Extra Packages for Enterprise Linux)是Fedora 社區(qū)打造提供高質(zhì)量軟件包的項(xiàng)目,相當(dāng)于一個(gè)第三方源。 

  1. yum install epel-release -y 

然后再安裝LXC相關(guān)的工具包,和創(chuàng)建容器所需要的模板lxc-templates 

  1. yum install lxc lxc-templates -y 

安裝完使用lxc-checkconfig檢查下操作系統(tǒng)對(duì)容器技術(shù)的支持

3.1 LXC工具包概覽

LXC所有的操作工具api都在這里,可以對(duì)LXC進(jìn)行相應(yīng)的操作。

3.2 創(chuàng)建一個(gè)容器

使用預(yù)定義的模板創(chuàng)建一個(gè)容器。它會(huì)根據(jù)模板設(shè)置自動(dòng)下載依賴環(huán)境包并安裝。 

  1. lxc-create -n 容器名稱 -t 模板(不需要加 lxc)  
  2. lxc-create -n mariolu-console -t centos 

模板就是第3節(jié)安裝的lxc-templates工具包。所有模板放在這個(gè)目錄下/usr/share/lxc/templates/

跟chroot思想一樣,安裝完容器,所有的主機(jī)文件夾根目錄被重定義到/var/lib/lxc/mariolu-console

3.3 啟動(dòng)容器

就像安裝完機(jī)器后,我們要開機(jī)啟動(dòng)服務(wù)器。Lxc也有相應(yīng)的步驟就是 

  1. lxc-start -n mariolu-console 

但是我們很快就發(fā)現(xiàn),啟動(dòng)需要密碼,但是使用容器創(chuàng)建沒有輸入密碼,難道是有什么默認(rèn)密碼嗎

在這里并不能看到root密碼,密碼或者被用x字符替代,或者是一串hash碼。 

  1. cat /var/lib/lxc/mariolu-console/rootfs/etc/shadow  
  2. chroot /var/lib/lxc/mariolu-console/rootfs passwd 

網(wǎng)絡(luò)搜索沒找到默認(rèn)密碼,但是找到了這么一句話:

The root password is set up as expired and will require it to be changedat first login, which you should do as soon as possible. If you lose the root password or wish to change it without starting the container, you can change it from the host by running the following command (which will also reset the expired flag) 

  1. chroot /var/lib/lxc/sspl-test/rootfs passwd 

YES! Give Me Five! 這個(gè)告訴我們重置密碼的命令。我們新開一個(gè)窗口,完成密碼的重置,然后重新切換回原來的窗口,這時(shí)候就可以用密碼愉快的登陸了。

 

 

責(zé)任編輯:龐桂玉 來源: 運(yùn)維派
相關(guān)推薦

2022-10-30 15:00:50

2022-05-24 12:34:32

Docker容器Linux容器進(jìn)程

2014-09-04 16:29:54

Linux紅帽

2020-11-26 13:54:03

容器LinuxDocker

2016-06-05 17:35:44

容器/虛擬化/東網(wǎng)科技

2010-06-07 09:53:36

ApacheHadoo

2023-08-27 15:07:58

2016-09-01 13:39:33

Linux鏡像XML 解析器

2010-09-08 20:20:39

2023-09-14 09:31:21

Docker容器

2024-06-27 08:26:10

LooperAndroid內(nèi)存

2014-01-15 10:04:38

LXCLinux 容器Linux 內(nèi)核

2024-06-05 16:22:11

2014-03-14 13:32:52

cgroupsLinux容器

2024-03-08 15:29:01

DockerUIDGID

2025-01-02 11:06:22

2017-11-28 09:21:53

LinuxWindowsDocker

2021-12-15 19:22:38

原理View動(dòng)畫

2019-11-12 11:15:39

setTimeout前端代碼

2024-08-05 11:14:45

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)