打印

使用docker,持续集成你的互联网服务器。

[复制链接]
3335|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
keer_zu|  楼主 | 2016-12-12 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Docker

注: 红字部分为 在 云服务器上执行的命令, 蓝字为在 Docker 中执行的命令
Install On Ubuntu
在腾讯云的 ubuntu 服务器上安装和运行 Docker
1. 添加Docker repository key
sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
2. 添加Docker repository,并安装Docker
sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
apt-get update
apt-get install lxc-docker
3. 检查Docker是否已安装成功
docker version
基本使用

安装 ubuntu 镜像
docker pull ubuntu
开始下载 ubuntu 镜像, 大概需要10分钟左右
Pulling repository ubuntu
9cbaf023786c: Pulling dependent layers
a9561eb1b190: Pulling dependent layers
195eb90b5349: Pulling dependent layers
2185fd50e2ca: Pulling dependent layers
c5881f11ded9: Pulling dependent layers
463ff6be4238: Pulling dependent layers
3db9c44f4520: Pulling dependent layers
511136ea3c5a: Download complete
500cae81e00f: Downloading [=========================================>         ] 58.63 MB/70.36 MB 1m6s
查看一下当前的镜像列表
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              14.10               2185fd50e2ca        2 days ago          237.2 MB
ubuntu              utopic              2185fd50e2ca        2 days ago          237.2 MB
ubuntu              14.04               9cbaf023786c        2 days ago          192.8 MB
ubuntu              14.04.1             9cbaf023786c        2 days ago          192.8 MB
ubuntu              trusty              9cbaf023786c        2 days ago          192.8 MB
ubuntu              latest              9cbaf023786c        2 days ago          192.8 MB
ubuntu              12.04.5             a9561eb1b190        2 days ago          120.2 MB
ubuntu              precise             a9561eb1b190        2 days ago          120.2 MB
ubuntu              12.04               a9561eb1b190        2 days ago          120.2 MB
ubuntu              12.10               c5881f11ded9        3 months ago        172.2 MB
ubuntu              quantal             c5881f11ded9        3 months ago        172.2 MB
ubuntu              13.04               463ff6be4238        3 months ago        169.4 MB
ubuntu              raring              463ff6be4238        3 months ago        169.4 MB
ubuntu              saucy               195eb90b5349        3 months ago        184.7 MB
ubuntu              13.10               195eb90b5349        3 months ago        184.7 MB
ubuntu              10.04               3db9c44f4520        5 months ago        183 MB
ubuntu              lucid               3db9c44f4520        5 months ago        183 MB
执行一个命令
docker run ubuntu:12.10 ls -lh /
total 68K
drwxr-xr-x   2 root root 4.0K Oct 16  2012 bin
drwxr-xr-x   2 root root 4.0K Oct  9  2012 boot
drwxr-xr-x   4 root root  340 Oct 16 15:51 dev
drwxr-xr-x  44 root root 4.0K Oct 16 15:51 etc
drwxr-xr-x   2 root root 4.0K Oct  9  2012 home
drwxr-xr-x  11 root root 4.0K Oct 16  2012 lib
drwxr-xr-x   2 root root 4.0K Oct 16  2012 lib64
drwxr-xr-x   2 root root 4.0K Oct 16  2012 media
drwxr-xr-x   2 root root 4.0K Oct  9  2012 mnt
drwxr-xr-x   2 root root 4.0K Oct 16  2012 opt
dr-xr-xr-x 128 root root    0 Oct 16 15:51 proc
drwx------   2 root root 4.0K Oct 16  2012 root
drwxr-xr-x   5 root root 4.0K Oct 16  2012 run
drwxr-xr-x   2 root root 4.0K Jun 18 21:54 sbin
drwxr-xr-x   2 root root 4.0K Jun 11  2012 selinux
drwxr-xr-x   2 root root 4.0K Oct 16  2012 srv
dr-xr-xr-x  13 root root    0 Oct 16 15:51 sys
drwxrwxrwt   2 root root 4.0K Oct 16  2012 tmp
drwxr-xr-x  11 root root 4.0K Oct 16  2012 usr
drwxr-xr-x  14 root root 4.0K Oct 16  2012 var
登录到 docker 里面去
docker run -i -t ubuntu:12.10 /bin/bash
root@bb55c85e1b34:/# uname -a
Linux bb55c85e1b34 3.5.0-52-generic #78~precise1-Ubuntu SMP Wed Jun 11 17:14:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

root@bb55c85e1b34:/# ip addr
25: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
26: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 12:6d:9c:14:76:82 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.9/16 scope global eth0
    inet6 fe80::106d:9cff:fe14:7682/64 scope link
       valid_lft forever preferred_lft forever
安装 openssh-server
ubuntu 默认的源在腾讯云主机上无法访问, 所以要把源改成腾讯云的源, 登录到 docker 里面去发现里面连 vi 编辑器都没有, 没办法, 只能把主机的文件映射到 docker 里面去, 然后 cp
下面的命令把主机的 /etc 映射到 docker 的 /opt/etc 目录, 并且运行 bash
docker run -i -t -v /etc:/opt/etc ubuntu:12.10 /bin/bash
进入 docker 后把主机的 sources.list 文件 copy 过去, 在 docker 里面执行下面的命令
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cp /opt/etc/apt/sources.list /etc/apt/sources.list
然后再执行 apt 命令安装就没有问题了
apt-get install -y vim openssh-server
设置个 ROOT 密码
root@fc9fe30c21bc:/# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
查看下 docker 的ip
root@fc9fe30c21bc:/# ip addr
43: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
44: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether e2:b9:5a:f8:d5:a1 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.15/16 scope global eth0
    inet6 fe80::e0b9:5aff:fef8:d5a1/64 scope link
       valid_lft forever preferred_lft forever
启动 sshd
root@7e3adf35663f:/# /etc/init.d/ssh restart
从主机上登录
ssh root@172.17.0.15
The authenticity of host '172.17.0.15 (172.17.0.15)' can't be established.
ECDSA key fingerprint is cf:19:d7:73:02:7e:58:90:08:79:8c:f0:85:2c:a2:9e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.0.15' (ECDSA) to the list of known hosts.
root@172.17.0.15's password:
Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-52-generic x86_64)

* Documentation:  https://help.ubuntu.com/

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

root@fc9fe30c21bc:~#
保存对docker的修改
1. 查看下 CONTAINER ID
docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
fc9fe30c21bc        ubuntu:12.10        "/bin/bash"         11 minutes ago      Up 11 minutes                           evil_turing
2. 保存 上一步的 CONTAINER ID 是 fc9fe30c21bc 但是不用全部输入只要保证不重复就可以了
docker commit fc9f y109/ubuntu
e099241dfc1fb31d950b0be4de2fa7a78510022737fe8cc81a913bdd4a244a95
3. 确认 镜像列表里面有刚刚保存的镜像
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
y109/ubuntu         latest              e099241dfc1f        14 seconds ago      316.2 MB
ubuntu              14.10               2185fd50e2ca        2 days ago          237.2 MB
ubuntu              utopic              2185fd50e2ca        2 days ago          237.2 MB
ubuntu              trusty              9cbaf023786c        2 days ago          192.8 MB
ubuntu              14.04.1             9cbaf023786c        2 days ago          192.8 MB
ubuntu              14.04               9cbaf023786c        2 days ago          192.8 MB
ubuntu              latest              9cbaf023786c        2 days ago          192.8 MB
ubuntu              12.04               a9561eb1b190        2 days ago          120.2 MB
ubuntu              12.04.5             a9561eb1b190        2 days ago          120.2 MB
ubuntu              precise             a9561eb1b190        2 days ago          120.2 MB
ubuntu              quantal             c5881f11ded9        3 months ago        172.2 MB
ubuntu              12.10               c5881f11ded9        3 months ago        172.2 MB
ubuntu              raring              463ff6be4238        3 months ago        169.4 MB
ubuntu              13.04               463ff6be4238        3 months ago        169.4 MB
ubuntu              13.10               195eb90b5349        3 months ago        184.7 MB
ubuntu              saucy               195eb90b5349        3 months ago        184.7 MB
ubuntu              10.04               3db9c44f4520        5 months ago        183 MB
ubuntu              lucid               3db9c44f4520        5 months ago        183 MB
4. 提交
docker push y109/ubuntu
The push refers to a repository [y109/ubuntu] (len: 1)
Sending image list

// 首次提交会要求登录
Please login prior to push:
Username: y109
Password:
Email: y109@qq.com
Login Succeeded
The push refers to a repository [y109/ubuntu] (len: 1)
Sending image list
Pushing repository y109/ubuntu (1 tags)
511136ea3c5a: Image already pushed, skipping
bac448df371d: Image already pushed, skipping
dfaad36d8984: Image already pushed, skipping
5796a7edb16b: Image already pushed, skipping
c5881f11ded9: Image already pushed, skipping
e099241dfc1f: Pushing [===========>                                       ] 32.94 MB/147.3 MB 1m10s
e099241dfc1f: Image successfully pushed
Refrence
http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html
http://wiki.jzland.com

相关帖子

沙发
keer_zu|  楼主 | 2016-12-13 09:23 | 只看该作者
yyy71cj 发表于 2016-12-13 08:30
先说说这具体是什么用途

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:

    web应用的自动化打包和发布;
    自动化测试和持续集成、发布;
    在服务型环境中部署和调整数据库或其他的后台应用;
    从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

使用特权

评论回复
板凳
keer_zu|  楼主 | 2016-12-13 13:37 | 只看该作者

就是一个轻量级的虚拟机,可以将操作系统和你的应用一起打包运行,后边可以在此基础上持续集成

使用特权

评论回复
地板
keer_zu|  楼主 | 2016-12-14 11:08 | 只看该作者
yyy71cj 发表于 2016-12-13 08:30
先说说这具体是什么用途



    【摘要】12月6-7日,由阿里巴巴集团、阿里巴巴技术发展部、阿里云云栖社区联合主办,以“2016双11技术创新”为主题的阿里巴巴技术论坛上,阿里巴巴研究员林昊分享了阿里超大规模Docker化之路。阿里在Docker化这条路上,碰到了规模、多元化场景所带来的各种挑战,这次分享中将给大家介绍阿里为什么要引入Docker,以及如何完成这次超大规模的Docker化。

Docker化之前

Docker化之前,阿里主要交易业务已经容器化。采用T4做容器化,T4是2011年开发的一套系统,基于LXC开发,在开发T4的过程中,跟业界很大的不同在于,T4更像VM的容器。当用户登进T4后,看起来与标准的KVM等几乎完全一样,对用户来讲是非常透明化的。所以,容器化不是我们推进Docker的原因。

a)触发我们Docker化的主要原因一:Docker最重要的一点是镜像化,可以做到拿着镜像就可以从一台完全空的机器的应用环境搭建起来,可以把单机环境完全从零搭好。Docker化之前,阿里巴巴的应用部署方式主要由Java、C来编写的,不同的业务BU可能采用完全不同的部署方式,没有统一标准。内部尝试通过基线来建立部署标准,定义的基线包括应用依赖的基础环境(OS、JDK版本等)、应用依赖的脚本,基础环境的配置(启动脚本、Nginx配置等)、应用目录结构、应用包、应用依赖的DNS、VIP、ACI等,但不成功。部署标准做不了,直接导致自动化很难做到。

b)触发我们Docker化的主要原因二:DevOps是一个更好的方向,阿里巴巴做了很多运维和研发融合的调整。Docker是帮助DevOps思想真正落地的一种手段,所有的思想最终都体现在工具或框架上,变成一个强制性的手段,Docker会通过Dockerfile的描述,来声明应用的整个运行环境是怎样的,也就意味着在编写Dockerfile过程中,就已经清楚在不同环境中的依赖状况到底是怎样的,而且,这个环境是通过一个团队来维护的。
Docker化目标

2016年7月,阿里巴巴制定了两个Docker化目标:

    交易核心应用100%Docker化;
    DB其中一个交易单元全部Docker化。

Docker化之路

推进Dcoker之前,我们有一个准备的过程。在准备阶段,我们需要Docker更像VM和更贴合阿里运维体系的Docker,我们将改造过的Docker称为AliDocker;除了AliDocker以外,我们需要支持AliDocker的工具体系,比如编译、镜像库、镜像分发机制,在完成这些准备工作后,我们认为可以一帆风顺地开始大规模的AliDocker上线。但事实并非如此。

第一轮Docker化

我们碰到了很多问题:

    工具不完善,阿里很多应用之前都是在T4容器中,怎样将T4容器转换成AliDocker是首要面临的问题;
    镜像Build后上传,以前阿里一个应用转成多个,很多时候需要在自己的机器上做Build,然后自己上传,导致做应用时很痛苦;
    应用从T4切换成走Docker的链路,链路没有完全准备好,从资源创建到发布,很多需要手工去做,大规模去做效率非常低。

第二轮Docker化

在推进的过程中,我们又遭遇了新的问题。Docker的发布模式是典型的通过镜像,拉到镜像后将原来的容器销毁,重新创建一个容器,把镜像放进去,拉起来。Docker单一化的发布方式支持不了多种发布模式,更改velocity模板发布效率低;有本地内存cache的发布,重启本地内存cache就会消失。怎样在基于镜像模式情况下又能支持多种发布模式呢?

我们在Docker的镜像模式基础上做出一个crofix的模式,这个模式不是绕开镜像,而是从镜像中拉起我们需要的文件,去做覆盖等动作,这样就可以完成整个发布。Docker化镜像模式是必须**的,否则失去了Docker化的意义。

第三轮Docker化

继续推进到很多应用切换到Docker的时候,我们又遇到了更大的问题:

    首先,很多研发人员都有明显的感受,切换到Docker后变慢。第一,编译打包镜像慢,编译打包完应用的压缩包后,还需要把整个环境打包成镜像,这是在原有基础上增加的过程,如果编译时每次都是新机器,以前依赖的所有环境都要重新拉,一个应用Docker的完整镜像通常会很大,因为它包括依赖的所有环境。对此,我们在编译层做了很多优化,尽可能让你每次都在之前编译的基础上进行编译。第二,镜像压缩问题,Go在1.6以前的版本压缩是单线程,意味着压缩整个镜像时效率会非常低,所以我们选择暂时把镜像压缩关闭掉。

    其次是发布问题,Docker的镜像化模式决定了分发一定是镜像分发,使用Docker时不能完全把它当作透明化东西去用,对所有研发人员来说,要非常清楚依赖的环境、Dockerfile中镜像的分层改怎么做,将频繁变化部分与不频繁变化部分做好分层,镜像分层是改变Docker慢的重要方案;阿里制定了镜像分发多机房优化,比如打包后将所有镜像同步到所有机房;阿里也做了发布优化(P2P、镜像预分发、流式发布),还通过Docker Volume将目录绑定到Dockerfile中,可以保证镜像文件每次拉起时不会被删掉。

在整个Docker化的过程中,我们在“慢”这个问题上遇到了最大的挑战,不管是编译慢还是发布慢,都做了很多突击的改造项目,最后才让整个编译过程、发布过程在可控的响应速度内。

第四轮Docker化

在推进过程中,我们还遇到规模问题:

由于规模比较大,开源软件很容易碰到支撑规模不够,稳定性差的问题。目前我们使用Swarm来管理,Swarm的规模能力大概可以支撑1000个节点、50000个容器,而我们需要单Swarm实例健康节点数在3W+,对此,我们对Swarm进行了优化。

图片描述

规模我们做到从支撑1000到3W+,压力减小了很多。而Swarm的稳定性对我们来讲,最大的问题在HA上,一个Swarm实例如果挂掉,重新拉起需要时间,所以我们在用Swarm时进行了改造。在前面加了一层Proxy,不同业务、不同场景都可以通过Proxy转换到自己不同的Swarm实例上。另外,所有的Swarm节点我们都会用一个备方案在旁边,而且都是不同机房去备。

通过改造增强HA机制后,可以做到每次切换、简单发布。

Bugfix和功能增强

除了上面四轮次比较明显的问题,在整个Docker化过程中,还做了很多的Bugfix和功能增强,具体有以下几方面:

    Daemon升级或crash后,所有容器被自动销毁的问题;
    Cpuset、cpuacct和CPU子系统mount到一起时CGroup操作错误的bug;
    支持基于目录的磁盘配额功能(依赖内核patch);
    支持制定IP启动容器,支持通过DHCP获取IP;
    支持启动容器前后执行特定脚本;
    支持镜像下载接入各种链式分发和内部mirror的机制;
    增加Docker Build时的各种参数优化效率和适应内部运维环境;
    优化Engine和Registry的交互。

经历了这么多坎坷,我们终于完成了全部目标,实现双11时交易所有核心应用都AliDocker化,DB其中一个交易单元全部AliDocker化,生产环境共几十万的AliDocker。
未来

容器化的好处是可以把很多对物理机型的强制要求虚拟化,可能也需要Docker在内核层面的改造,对于未来,我们已经做好了准备,希望:

    所有软件AliDocker化;
    和Docker公司紧密合作回馈社区;
    AliDocker生态体系逐渐输出到阿里云。

使用特权

评论回复
5
keer_zu|  楼主 | 2016-12-14 12:54 | 只看该作者
yyy71cj 发表于 2016-12-14 11:22
这是运用在互联网系统中的那……?

https://bbs.21ic.com/icview-1651930-1-1.html

使用特权

评论回复
6
keer_zu|  楼主 | 2016-12-14 17:02 | 只看该作者
yyy71cj 发表于 2016-12-14 11:22
这是运用在互联网系统中的那……?

http://m.csdn.net/article/2014-07-02/2820497-what's-docker

使用特权

评论回复
7
keer_zu|  楼主 | 2016-12-28 22:58 | 只看该作者
yyy71cj 发表于 2016-12-14 11:22
这是运用在互联网系统中的那……?

当今好多云计算方案不可缺少的一部分

使用特权

评论回复
8
keer_zu|  楼主 | 2016-12-29 08:27 | 只看该作者
yyy71cj 发表于 2016-12-29 00:14
其实,不过是某些人刻意炒作的一些概念而已,并没有多么的神奇。互联网还是那个互联网,服务器还是那个服 ...

余兄,这你就大错特错了。云计算现在落地这么多年了,已经不是当初了。

使用特权

评论回复
9
keer_zu|  楼主 | 2016-12-29 08:37 | 只看该作者
yyy71cj 发表于 2016-12-29 08:32
看来,你还真不知道中国式技术流的真相啊……去深圳走一趟吧……

现在国内IT和全球几乎同步,还有领先的领域。云计算我第一次听说是两千年初,当时候还刚刚提出,现在云计算的整个基础已经形成,很多传统的互联网服务也云计算化。

使用特权

评论回复
10
keer_zu|  楼主 | 2016-12-29 13:14 | 只看该作者
yyy71cj 发表于 2016-12-29 10:44
这种技术,其实早就存在了,而且范围非常广泛,就是分布式数据存储与分布式处理,后来忽然就叫云了,看起 ...

路由和交换是完全不同的概念啊,工作的层面不同,起到的作用不同,可不是不同的名字啊。
交换机是解决同一个网络里面相互通信的问题,有了它就不用纠结是星形网络、环形网络、两两互联网络等拓扑结构的优缺点和交换方式了。但终究还是在一个网络里面。

路由器就不同了,他要解决的是通过IP地址跨网络定位通信目标的问题,是网络互连必不可少的工具。

云计算和分布式计算相比,根本不是一个概念。云计算是通过分布式计算的手段将资源进行整合以服务的形式呈现给用户,形式上还是以客户端-服务器的模式给出的,只是这个服务器背后可能是很多物理计算机的整合,包括使用分布式计算手段进行的整合。

使用特权

评论回复
11
keer_zu|  楼主 | 2016-12-29 13:14 | 只看该作者
yyy71cj 发表于 2016-12-29 10:44
这种技术,其实早就存在了,而且范围非常广泛,就是分布式数据存储与分布式处理,后来忽然就叫云了,看起 ...

路由和交换是完全不同的概念啊,工作的层面不同,起到的作用不同,可不是不同的名字啊。
交换机是解决同一个网络里面相互通信的问题,有了它就不用纠结是星形网络、环形网络、两两互联网络等拓扑结构的优缺点和交换方式了。但终究还是在一个网络里面。

路由器就不同了,他要解决的是通过IP地址跨网络定位通信目标的问题,是网络互连必不可少的工具。

云计算和分布式计算相比,根本不是一个概念。云计算是通过分布式计算的手段将资源进行整合以服务的形式呈现给用户,形式上还是以客户端-服务器的模式给出的,只是这个服务器背后可能是很多物理计算机的整合,包括使用分布式计算手段进行的整合。

使用特权

评论回复
12
keer_zu|  楼主 | 2016-12-30 09:04 | 只看该作者
yyy71cj 发表于 2016-12-29 14:14
难道你没看出,80~90%的相同吗?数据计算最后呈现给谁,这也算区别?
就如数据库,带触发器的数 ...

OSI七层都是向上层提供数据(服务)的,人类和猴子基因相近程度大的惊人。

使用特权

评论回复
13
keer_zu|  楼主 | 2016-12-30 09:04 | 只看该作者
yyy71cj 发表于 2016-12-29 14:14
难道你没看出,80~90%的相同吗?数据计算最后呈现给谁,这也算区别?
就如数据库,带触发器的数 ...

OSI七层都是向上层提供数据(服务)的,人类和猴子基因相近程度大的惊人。

使用特权

评论回复
14
keer_zu|  楼主 | 2016-12-30 11:23 | 只看该作者
yyy71cj 发表于 2016-12-30 10:59
男人与女人,到底都是不是人呢?

不好意思,路由器没有性别,这个没法比

使用特权

评论回复
15
keer_zu|  楼主 | 2016-12-30 11:59 | 只看该作者
yyy71cj 发表于 2016-12-30 11:34
现代人与古代人都是不是人呢?

你说的老款路由器和新款吧,这个能对的上号。

使用特权

评论回复
16
keer_zu|  楼主 | 2016-12-30 13:45 | 只看该作者
yyy71cj 发表于 2016-12-30 13:07
传西装的人与裸人都不一样了

余兄,扯远啦

使用特权

评论回复
17
keer_zu|  楼主 | 2016-12-30 16:22 | 只看该作者
yyy71cj 发表于 2016-12-30 15:42
你还没明白,本来就是把一些原本有名有姓的东西加了一些本就不是新的东西,然后就改名了,这 ...

绝对不是只改了个名字啊。

使用特权

评论回复
18
keer_zu|  楼主 | 2017-1-18 17:33 | 只看该作者
yyy71cj 发表于 2016-12-31 08:02
我有这样说吗?

嵌入式与互联网,后者更能代表当今技术主流

使用特权

评论回复
19
keer_zu|  楼主 | 2017-9-21 14:29 | 只看该作者
大家docker用起来了吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1352

主题

12436

帖子

53

粉丝