當前位置:
首頁 > 最新 > 詳細解讀Docker-LinuxKit搭建,保你一學就會!

詳細解讀Docker-LinuxKit搭建,保你一學就會!

linuxkit這個工具可以理解為是用多個docker鏡像來組成一個最小化、定製化的操作系統,定製化後的系統只有幾十M,配合openstack等雲端用會很爽。不過對於初學者來說,搭建LinuxKit是件很痛苦的事情,接下來就讓學習了課堂為大家詳細解讀Docker-LinuxKit搭建,覺得有用的小夥伴就趕緊收藏起來吧!

1、安裝moby

製作系統需要moby這個工具,系統已經安裝好GO的前提下,執行下面的命令。

命令執行完沒有提示就是正常安裝了。

2、創建linuxkit文件

這個文件里指定了要組合成什麼樣的系統,kernel、init、 onboot、services、 files這個順序是不能變的,見下例:

[root@dockerhub linuxkitdemo]# cat linuxkitone.yml

kernel:

image: "mobylinux/kernel:4.9.x" #內核鏡像

cmdline: "console=ttyS0console=tty0 page_poison=1" #內核命令,可以不指定

init: #初始進程,啟動系統和一些後台容器、配置基礎文件系統掛載等。

- linuxkit/containerd:60e2486a74c665ba4df57e561729aec20758daed

- mobylinux/ca-certificates:eabc5a6e59f05aa91529d80e9a595b85b046f935

onboot: #系統服務

- name: sysctl

image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c"

net:host

pid: host

ipc: host

capabilities:

- CAP_SYS_ADMIN

readonly: true

- name: binfmt

image: "linuxkit/binfmt:8881283ac627be1542811bd25c85e7782aebc692"

binds:

- /proc/sys/fs/binfmt_misc:/binfmt_misc

- name: dhcpcd

- /var:/var

- /tmp/etc:/etc

- CAP_NET_ADMIN

- CAP_NET_BIND_SERVICE

- CAP_NET_RAW

net: host

command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]

services: #如果希望有些應用是隨著系統啟動並一直運行的,可以在這配置;需要注意的是這些服務(也就是docker容器)的啟動是沒順序的,如果有依賴關係需要另外處理。

- name: rngd

image: "mobylinux/rngd:3dad6dd43270fa632ac031e99d1947f20b22eec9"

oomScoreAdj: -800

- name:nginx#服務名稱,自定義

image: "nginx:alpine" # docker鏡像,自由選擇

capabilities: #賦予這個服務具有的能力

- CAP_CHOWN

- CAP_SETUID

- CAP_SETGID

- CAP_DAC_OVERRIDE

net: host #指定網路命名空間,host是共享主機的網路命名空間。

files:

-path:etc/docker/daemon.json

contents: 『{"debug": true}『

trust: #添加信任的鏡像或組織

image:

- mobylinux/kernel

outputs:

-format: kernel+initrd

- format: iso-bios

-format: iso-efi

#指定輸出文件類型,名字默認與.yml文件名字一樣,「moby build」創建鏡像時也可以用「--name」指定鏡像名稱;可以指定的類型有:

lkernel+initrd:不太清楚何時用這個格式;

l iso-bios:包含傳統BIOS的CD鏡像;

l iso-efi:包含EFIBIOS的CD鏡像,適用於較新硬體;

l gcp-img:壓縮過的tar包格式,適用於GoogleCloudPlatform;

l gcp-storage:與Google Cloud Platform有關;

l gcp:與GoogleCloudPlatform有關;

l qcow、qcow2:適用於Qemu的格式;

l vhd:VHD鏡像;

l vmdk:適用於VmWare的VMDK鏡像。

3、製作系統

將上面linuxkit內容放到/opt/linuxkitdemo/linuxkitone.yml里,然後執行下面的命令,cd /opt/linuxkitdemo/ && moby build linuxkitone.yml執行過程比較慢,失敗了就多執行幾次,成功後會在/opt/linuxkitdemo/這個目錄出現如下幾個文件,

出現這些文件是因為在linuxkitone.yml里配置了」outputs」類型。

4、使用鏡像進入系統

可以使用qemu工具,也可以將iso文件放到vmware或virtualbox里啟動。

4.1使用qemu創建虛擬機

創建完畢後界面,

4.2使用virtualbox創建虛擬機

使用生成的鏡像,用vmware創建虛擬機巨慢;用virtualbox創建1分鐘就啟動了,進入後的界面跟上面類似,

因為在linuxkitone.yml里配置的「services」里包含nginx,所以進入系統後nginx服務就是啟動狀態。

在系統里輸入「halt」退出。

怎麼樣?你學會了嗎?如果沒學會,就來「學習了」,這裡有很多技術大咖分享技術經驗,想提高技術能力就快去報名吧!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球搜羅 的精彩文章:

粽子和葡萄酒,東西方的完美碰撞
接吻也是體力活 大哥攤上這妹子太遭罪
前北京大學校長沈尹默楷書《祝壽序十屏》,至今仍為經典,無人超越
誰說內向就不能把妹了,4招讓你迅速搞定女神!
免費!免費!十六朝古都西安的10大免費景點!

TAG:全球搜羅 |

您可能感興趣

Python3+Selenium3 Windows下環境搭建
Jenkins+RobotFramework持續集成測試-jenkins環境搭建
從零搭建kubernetes多節點cluster
Appium Android For Mac OS 搭建環境
三步教你如何使用RT-Thread MicroPython搭建一個Web伺服器
python selenium環境搭建
Linux Ubuntu搭建Git伺服器
linux搭建gitlab
Spring security + oauth2.0 + redis + mybatis plus 搭建微服務
Spring Cloud服務發現與服務註冊Eureka + Eureka Server的搭建
Vue+VueRouter+elememntUI+axios 搭建後台管理系統
Keepalived+LVS+nginx搭建nginx高可用集群
Mysql8.0主從搭建,shardingsphere+springboot+mybatis讀寫分離
Kotlin Android 環境搭建
搭建Yearning 基於Inception的開源SQL審核平台
Docker環境下搭建DNS LVS(keepAlived) OpenResty伺服器簡易集群
SpringBoot+Dubbo搭建微服務
mac上搭建kafka並利用spark streaming實時消費
Eclipse JSP/Servlet 環境搭建
Linux+Nginx+Uwsgi+Django 搭建單服務實現多域名訪問