我是张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。我喜欢把玩代码,琢磨词句!代码算法让我穿透规律,文章摘句让我洞察人情。如果你觉得和我的看法不一样,请关注我的头条号,那我们一定合得来。
Docker翻译为码头工人,有什么用意?注意看图!
集装箱相当于容器,集装箱≈主程序+依赖包;为了保证自己的程序不受系统等环境影响,发布的时候,只需要把自己的集装箱从A船搬运到B船就可以了,这里的船可以理解成服务器。所以对运维来说,Docker是巨大的福音。因为,可以不用考虑各种不兼容,不用考虑安装这个漏了那个,只要拿到一个生成集装箱的模板,即镜像。可以生成N多的服务了。
如果要用Docker来部署一个GitLab,怎么做呢?一段代码的事,请看代码!
sudo docker run --detach
--hostname 172.16.0.247
--publish 443:443 --publish 80:80 --publish 8888:22
--name gitlab
--restart always
--volume /srv/gitlab/config:/etc/gitlab
--volume /srv/gitlab/logs:/var/log/gitlab
--volume /srv/gitlab/data:/var/opt/gitlab
接下来访问,就可以看到效果了,请看图示!
GitLab首页
这段神奇的代码都做了什么?
首先,他会到云镜像仓库,类似AppleStore获取GitLab镜像模板,然后根据镜像启动一个GitLab容器。注意,容器的启动和停止都是秒级的。不用于VMware等虚拟机,Docker底层和操作系统是共享资源,很轻量。传统虚拟机是完全启动一个独立系统,特点就是笨、慢。Docker可以在一台服务器同时启动上千个虚拟容器,VMware表示望尘莫及。
Docker和虚拟机对比
左图的虚拟机,做OS上还有三个Guest OS,右边的容器共享一个OS,知道底层的架构,那么二则的对比就一目了然,献上对比图:
Docker的强大你感受到了没,看官,这是冰上一角,还有更精彩的功能吗?有,且听下回分解!
如果对Docker有更深的洞察,欢迎补充和讨论,感谢您的捧场。我是张飞洪,我为博客园的读者写故事。我会给你呈现程序员眼中的世界,请关注我的头条号!