加入收藏 | 设为首页 | 会员中心 | 我要投稿 泉州站长网 (https://www.0595zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

CoreOS 实战 在 UOS上体会CoreOS 运作全记录

发布时间:2022-06-04 11:33:15 所属栏目:云计算 来源:互联网
导读:近期 UnitedStack 公有云在国内率先提供了对 CoreOS 的支持,广大玩家可以很轻松地在 UOS 上体验、研究 CoreOS 了。以下是一点经验分享,抛砖引玉,希望能给大家带来些许帮助。 CoreOS 和 docker 简介 关注云计算的同学一定注意到了 docker ,而关注 docker

 
体验CoreOS
 
试验一:跑个docker 试试
 
1 从docker hub(docker官方提供的映像存储服务)拉取一个基础Linux系统映像:
 
2 启动一个docker容器,运行交互式shell,分配一个伪终端,附带stdin和stdout:
 
复制
docker run -i -t base /bin/bash
 
此时就attach到了刚启动的docker 容器的终端。运行一些命令试试:
 
用docker kill 命令可以停止容器。停掉的容器并没有完全删除,还可以重新起来,而且前面做的改动会被保留:
 
试验二:运行WordPress
 
WordPress需要 mysql 数据库,所以先 pull mysql:
 
复制
docker pull mysql
 
然后 pull wordpress 映像:
 
复制
docker pull wordpress
 
运行 mysql:
 
复制
docker run --name mysql_1 -e MYSQL_ROOT_PASSWORD=test_test -d mysql
 
运行 wordpress:
 
复制
docker run --name wordpress_1 --link mysql_1:mysql -p 80:80 -d wordpress
 
参数解释:
 
--name mysql_1 给docker容器起个名字。
-e MYSQL_ROOT_PASSWORD=test_test 指定mysql的root密码。
-p 80:80 把主机(CoreOS)的80端口映射到docker容器内部的80端口,这样就可以通过“主机ip:80”访问到容器里80端口的服务。
--link mysql_1:mysql 这个参数比较神奇,看起来很简单,但要解释清楚还是有点复杂的。简言之,这个参数把两个docker容器打通了,使它们内部的应用可以很容易地互访。
 
OK,现在可以访问WordPress了,直接在浏览器地址栏输入前面绑定的公网ip:
 
稍微深入一点
 
额,wordpress就这么起来了,大家是不是感觉有点太。。。轻巧了。。。
 
的确,经过docker封装的应用,用起来很方便,但也把大量细节隐藏了。作为一个惯于寻根究底、不肯放过任何细节的资深&优秀OPer,难以容忍真相被层层包裹在深幕之后。
 
好吧,我们再往深处探寻一下。
 
Q1:这两个服务这么不声不响就起来了,也没输出啥信息么? A1:可以通过docker logs 命令查看每个容器的运行日志:
 
Q2:平时用惯了ssh,假如想登录到某个docker容器内部,该怎么做呢? A2:用nsenter 可以“渗透”进入到运行中的docker容器。
 
首先,找到容器的 进程的PID
 
复制
PID=`docker inspect --format "{{ .State.Pid }}" mysql_1 `
 
然后渗入(需要root权限)
 
复制
sudo nsenter --target $PID --mount --uts --ipc --net --pid  
 
如上所示,我们进入了 mysql_1 这个容器。确实太纯净了,只有mysql,连 top、ps 都没有。。。那只好连上mysql看看:
 
OK,再进入wordpress看看:
 
其实,这种方式并不是ssh登录,不需要容器内部运行sshd服务。而是用主机的bash进入容器的name space,“附着”到容器上。所以才叫做 ns(name space) enter。
 
之所以能这么做,是因为每个docker容器中的进程,实际上都是主机(CoreOS)的本地进程,可以通过ps 看到:
 
有点神奇哈!到这里大家应该能感觉到,上面反复提到的name space,就是神奇的docker魔法的真正谜底。当然还需要aufs、cgroups等技术的支撑,以及开发者们的不懈努力,才最终呈现给大家完整的docker平台。

(编辑:泉州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!