[Day02]: Docker 環境配置


LXC(Linux Container)

  • 命名空間 - Namespace
  • 控制群組 - CGroups

隔離技術 - 命名空間

namespace 是 linux kernel內的一種資源分隔技術
可使process只存取與自身相關的資源
不同 process間察覺不到對方存在

Linux Kernel 中的6種不同命名空間
- - Mount Namespace
- UTS Namespace
- PID Namespace
- IPC Namespace
- Network Namespace
- User Namespace

隔離技術 - 控制群組

Linux kernel內的功能,用來控制、限制、分離 process group的資源

由於容器之間共用宿主物理資源,不同資源之間的佔用情況,也會影響各個容器處理的運行效率,因此資源隔離很重要。

容器技術就是透過上述兩種隔離技術來實現容器的隔離。

LibContainer

Docker在優化過程中,也逐漸發展自己的底層容器技術。

功能:

  • Namespace 的使用
  • CGroups 的管理
  • Rootfs 的配置
  • Process 的環境變量配置

Docker 環境安裝

此次使用環境:Kali Linux(2020.1)

安裝指令如下:

1.
apt-get update
apt-get install -y apt-transport-https ca-certificates
apt-get install dirmngr

2.
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

3.
echo ‘deb https://apt.dockerproject.org/repo debian-stretch main‘ > /etc/apt/sources.list.d/docker.list

4.
apt-get update
apt-get install docker-engine
5.
service docker start

Docker 常見指令

docker images 查看目前images

docker create [OPTIONS] IMAGE [ARG...]
//創建新的images

docker rmi [OPTIONS] IMAGE [IMAGE...]
//刪除images

docker ps
//查看當前運行container

執行 ubuntu
docker run -it ubuntu bash (如果沒有Ubuntu image會自動幫你載)[color=#7dc40b]


Client-Server Architecture


在 終端輸入的 Docker 指令會先傳給 Docker CLI,也就是客戶端,並傳送請求給 Docker Daemon,執行指令中的要求。


參考資料

[1]https://www.pianshen.com/images/316/92f6485e401960153dd9efdda99fcb6c.png

#docker #虛擬化技術







你可能感興趣的文章

API 是什麼?

API 是什麼?

深入激活函數

深入激活函數

[Heroku] 佈署你的 Node.js + Express + Sequelize migration 專案到 Heroku 上吧 !

[Heroku] 佈署你的 Node.js + Express + Sequelize migration 專案到 Heroku 上吧 !






留言討論