我們在進行URLOS應用開發時,經常會用到一些基礎系統映象,如:ubuntu、CentOS、Debian等,我們可以通過docker pull命令直接拉取官方映象。
root@ubuntu:~# docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
898c46f3b1a1: Already exists
63366dfa0a50: Already exists
041d4cd74a92: Already exists
6e1bee0f8701: Already exists
Digest: sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8
Status: Downloaded newer image for ubuntu:18.04
root@master-node:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 94e814e2efa8 6 weeks ago 88.9MB
root@ubuntu:~#
複製程式碼
以上是從docker官方拉取的ubuntu18.04映象,我們可以基於此映象製作相關的應用,比如LNP網站環境、LAP網站環境、Nodejs環境等等。簡單理解,就是說幾乎所有的docker應用都是在這些映象上層層打包後得到的,應用的最終體積也許有幾百M甚至上G,我們如何為應用瘦身以減少對磁碟的消耗呢?
docker官方為我們打造了Alpine。 Alpine 的意思是“高山的”,比如 Alpine plants高山植物,Alpine skiing高山滑雪、the alpine resort阿爾卑斯山勝地,其實Alpine是一個作業系統。
Alpine 作業系統是一個面向安全的輕型 Linux 發行版。目前 Docker 官方已開始推薦使用 Alpine 替代之前的 Ubuntu 做為基礎映象環境。這樣會帶來多個好處。包括映象下載速度加快,映象安全性提高,主機之間的切換更方便,佔用更少磁碟空間等。
Alpine的特點:
1、小巧:基於Musl libc和busybox,和busybox一樣小巧,最小的Docker映象只有5MB;
2、安全:面向安全的輕量發行版;
3、簡單:提供APK包管理工具,軟體的搜尋、安裝、刪除、升級都非常方便。
4、適合容器使用:由於小巧、功能完備,非常適合作為容器的基礎映象。
在製作URLOS應用時,我們可以選擇Alpine作為系統基礎映象,這樣一來可有效降低應用的大小,方便其他使用者下載安裝。現在我們開始使用Alpine(如果你的系統中沒有安裝docker,建議先安裝URLOS,因為它自帶了docker)。
docker下執行Alpine
使用docker pull
命令拉取Alpine映象
root@ubuntu:~# docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
bdf0201b3a05: Pull complete
Digest: sha256:28ef97b8686a0b5399129e9b763d5b7e5ff03576aa5580d6f4182a49c5fe1913
Status: Downloaded newer image for alpine:latest
root@ubuntu:~#
複製程式碼
使用docker images
命令檢視映象
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest cdf98d1859c1 2 weeks ago 5.53MB
ubuntu 18.04 94e814e2efa8 6 weeks ago 88.9MB
root@ubuntu:~#
複製程式碼
可以看到alpine映象只有5.53MB,而ubuntu映象則有88.9MB,Alpine的體積優勢非常明顯。
下面執行映象
root@ubuntu:~# docker run -it --name myalpine alpine
/ #
複製程式碼
Alpine的基本配置
1、網路相關配置
主機名檔案
/etc/hostname
使用新設定的主機名立刻生效,執行如下命令:
hostname -F /etc/hostname
複製程式碼
主機IP和域名對映檔案
/etc/hosts
檔案內容為:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 a9efe865a8e6
192.168.43.121 www.urlos.com
複製程式碼
DNS 伺服器配置檔案
/etc/resolv.conf
檔案內容為:
#neeanew Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.43.1
複製程式碼
網路卡配置檔案
/etc/network/interfaces
檔案內容為:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.43.121
netmask 255.255.255.0
gateway 192.168.43.1
複製程式碼
修改完相關配置以後,重新啟動網路服務:
/etc/init.d/networking restart
複製程式碼
2、更新國內源
Alpine的原始檔為:
/etc/apk/repositories
預設的源地址為:dl-cdn.alpinelinux.org/
可以編輯原始檔 /etc/apk/repositories
採用國內阿里雲的源,檔案內容為:
mirrors.aliyun.com/alpine/v3.6…
mirrors.aliyun.com/alpine/v3.6…
如果採用中國科技大學的源,檔案內容為:
mirrors.ustc.edu.cn/alpine/v3.6…
mirrors.ustc.edu.cn/alpine/v3.6…
軟體包管理工具apk的基本使用
alpine 提供了非常好用的apk軟體包管理工具,
可以方便地安裝、刪除、更新軟體。
查詢相關的軟體包
命令:apk search
,如查詢vim軟體包:
/ # apk search vim
neovim-doc-0.2.0-r0
faenza-icon-theme-vim-1.3.1-r4
docker-vim-17.05.0-r0
vim-doc-8.0.0595-r0
py-jinja2-vim-2.9.6-r0
vimdiff-8.0.0595-r0
asciidoc-vim-8.6.9-r2
neovim-lang-0.2.0-r0
vim-8.0.0595-r0
neovim-0.2.0-r0
nginx-vim-1.12.2-r2
msmtp-vim-1.6.6-r1
protobuf-vim-3.1.0-r1
gst-plugins-base1-1.10.4-r1
mercurial-vim-4.5.2-r0
/ #
複製程式碼
安裝軟體包
命令:apk add
,如安裝vim軟體包:
/ # apk add vim
(1/5) Installing lua5.2-libs (5.2.4-r2)
(2/5) Installing ncurses-terminfo-base (6.0_p20171125-r1)
(3/5) Installing ncurses-terminfo (6.0_p20171125-r1)
(4/5) Installing ncurses-libs (6.0_p20171125-r1)
(5/5) Installing vim (8.0.0595-r0)
Executing busybox-1.29.3-r10.trigger
OK: 39 MiB in 19 packages
/ #
複製程式碼
解除安裝軟體
命令:apk del
,如解除安裝vim軟體:
/ # apk del vim
(1/5) Purging vim (8.0.0595-r0)
(2/5) Purging lua5.2-libs (5.2.4-r2)
(3/5) Purging ncurses-libs (6.0_p20171125-r1)
(4/5) Purging ncurses-terminfo (6.0_p20171125-r1)
(5/5) Purging ncurses-terminfo-base (6.0_p20171125-r1)
Executing busybox-1.29.3-r10.trigger
OK: 6 MiB in 14 packages
/ #
複製程式碼
獲取更多apk包管理的命令引數
命令:apk --help
以上是Alpine最基本的使用方法,更多URLOS開發教程與docker容器教程請訪問URLOS官網獲取。
URLOS官網:www.urlos.com/ URLOS安裝方法:www.urlos.com/center-home… URLOS開發交流QQ群:695164700,147882180 URLOS微信公眾號: