我们在开发URLOS应用时经常会用到一些基础系统镜像,例如:ubuntu、CentOS、Debian等,我们可以直接通过dockerpull命令拉取它们官方镜像。root@ubuntu:~#dockerpullubuntu:18.0418.04:Pullingfromlibrary/ubuntu898c46f3b1a1:Alreadyexists63366dfa0a50:Alreadyexists041d4cd74a92:Alreadyexists6e1bee0f8701:AlreadyexistsDigest:sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8Status:Downloadednewerimageforubuntu:18.04root@master-node:~#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEubuntu18.0494e814e2efa86weeksago88.9MBroot@ubuntu:~#以上是从docker拉取的ubuntu18.04官方镜像。我们可以基于这个镜像做相关的应用,比如LNP网站环境和LAP网站环境,Nodejs环境等,简单理解就是几乎所有的docker应用都是通过这些镜像的上层封装得到的。应用程序的最终大小可能是数百兆字节甚至千兆字节。我们如何减小应用程序的大小以减少磁盘消耗?Docker正式为我们构建了Alpine。Alpine意为“高山”,如高山植物、高山滑雪、高山度假村等。实际上,Alpine是一个操作系统。AlpineOS是一个轻量级、面向安全的Linux发行版。目前Docker官方已经开始推荐Alpine来替代之前的Ubuntu作为基础镜像环境。这有几个优点。包括更快的图片下载速度、提高的图片安全性、更方便的主机切换、更少的磁盘空间等。Alpine的特点:1.紧凑:基于Musllibc和busybox,它和busybox一样紧凑。最小的Docker镜像只有5MB;2.安全性:安全的轻量级发布版本;3、简单:提供APK包管理工具,软件搜索、安装、删除、升级都非常方便。4、适用于集装箱:由于体积小,功能齐全,非常适合作为集装箱的基本形象。在制作URLOS应用时,我们可以选择Alpine作为系统基础镜像,这样可以有效的减小应用的体积,方便其他用户下载安装。现在我们开始使用Alpine(如果你的系统没有安装docker,建议先安装URLOS,因为它自带docker)。docker下运行Alpine使用dockerpull命令拉取Alpine镜像root@ubuntu:~#dockerpullalpineUsingdefaulttag:latestlatest:Pullingfromlibrary/alpinebdf0201b3a05:PullcompleteDigest:sha256:28ef97b8686a0b5399129e9b763d5b7e5ff03576aa5580d6f4182a49c5fe1913Status:Downloadednewerimageforalpine:latestroot@ubuntu:~#使用dockerimages命令查看镜像root@ubuntu:~#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEalpinelatestcdf98d1859c12周前5.53MBubuntu18.0494e814e2efa86周前88.9MBroot@ubuntu:~#只有alpine镜像可以看到图像大小为88.9MB,Alpine的大小优势非常明显。运行下面的镜像root@ubuntu:~#dockerrun-it--namemyalpinealpine/#Alpine的基本配置1.网络相关的配置主机名文件/etc/hostname使用新设置的主机名立即生效,执行以下命令:hostname-F/etc/hostname主机IP和域名映射文件/etc/hosts文件内容:127.0.0.1localhost::1localhostip6-localhostip6-loopbackfe00::0ip6-localnetff00::0ip6-mcastprefixff02::1ip6-allnodesff02::2ip6-allrouters172.17.0.2a9efe865a8e6192.168.43.121www.urlos.comDNS服务器配置文件/etc/resolv.conf文件内容为:#neeanewDynamicresolv.conf(5)由resolvconf(8)生成的glibcresolver(3)文件#DONOTEDITTHISFILEBYHAND--YOURCHANGESWILLBEOVERWRITTENnameserver192.168.43.1网卡配置文件/etc/network/interfaces的内容是:autoloifaceloinetloopbackautoeth0ifaceeth0inetstaticaddress192.143.121netmask255.255.255.0gateway192.168.43.1修改相关配置后,重启网络服务:/etc/init.d/networkingrestart2。更新国内源Alpine的源文件:/etc/apk/repositories默认源地址为:http://dl-cdn.alpinelinux.org/可以编辑源文件/etc/apk/repositories使用国内源阿里云,文件内容为:https://mirrors.aliyun.com/al...https://mirrors.aliyun.com/al...如果使用中国科学技术大学的源,则文件内容为:https://mirrors。ustc.edu.cn/a...https://mirrors.ustc.edu.cn/a...apk包管理工具的基本使用alpine提供了一个非常好用的apk包管理工具,可以方便的安装、删除、更新软件查询相关包命令:apksearch,如查询vim包:/#apksearchvimneovim-doc-0.2.0-r0faenza-icon-theme-vim-1.3.1-r4docker-vim-17.05.0-r0vim-doc-8.0.0595-r0py-jinja2-vim-2.9.6-r0vimdiff-8.0.0595-r0asciidoc-vim-8.6.9-r2neovim-lang-0.2.0-r0vim-8.0.0595-r0neovim-0.2.0-r0nginx-vim-1.12.2-r2msmtp-vim-1.6.6-r1protobuf-vim-3.1.0-r1gst-plugins-base1-1.10.4-r1mercurial-vim-4.5.2-r0/#安装包命令:apkadd,比如安装vim包:/#apkaddvim(1/5)Installinglua5.2-libs(5.2.4-r2)(2/5)Installingncurses-terminfo-base(6.0_p20171125-r1)(3/5)安装ncurses-terminfo(6.0_p20171125-r1)(4/5)安装ncurses-libs(6.0_p20171125-r1)(5/5)安装vim(8.0.0595-r0)执行busybox-1.29.3-r10。triggerOK:39MiBin19packages/#卸载软件命令:apkdel,如卸载vim软件:/#apkdelvim(1/5)Purgingvim(8.0.0595-r0)(2/5)Purginglua5.2-libs(5.2.4-r2)(3/5)清除ncurses-libs(6.0_p20171125-r1)(4/5)清除ncurses-terminfo(6.0_p20171125-r1)(5/5)清除ncurses-terminfo-基地(6.0_p20171125-r1)执行gbusybox-1.29.3-r10.triggerOK:6MiBin14packages/#获取apk包管理命令的更多命令参数:apk--help以上是Alpine最基本的使用方法,更多URLOS开发教程和docker容器教程请访问URLOS官网获取URLOS官网:https://www.urlos.com/URLOS安装方法:https://www.urlos.com/center-...URLOS开发交流Q群:695164700,147882180网址微信:
