�x���¹�������ֱ�ӳ���
�gӭ���R�ЈD�W(w��ng) Ո | ע��

���] Docker�����c������-��2��

�����磺�����]늳���������r�g��2016-10-01
�_���� 32�_ 퓔�(sh��)�� 458
�� �D �r:¥57.1(6.4��) ���r  ¥89.0 ��䛺�ɿ������T�r
������Ǖ�����>
�I�^����Ʒ����߀�I��

Docker�����c������-��2�� ���(qu��n)��Ϣ

Docker�����c������-��2�� ������ɫ

��������(j��)Docker 1.10���Kubernetes 1.2�挦��1���M����ȫ��������Č��`�ߵĽǶȳ��l(f��)����Docker��Kubernetes�����c������“�����÷���B”��“����ԭ�����x”��“�߼����`����”��˼·��һ�����v͸��(d��ng)ǰ�����������������Ƽ��g(sh��)���������x���ڌ��H����������Docker�����������ƽ�Q���}�����l(f��)�µ�˼����ȫ�������ɲ������ײ���������xDocker�������g(sh��)������Docker�ܘ�(g��u)�c�O(sh��)Ӌ������Դ�a���x�͸߼����`���ɣ��ڶ����֚w�{�ͱ��^�������Docker�������������Ŀ��������עDocker���������c���������������ע��(y��ng)��֧�ε��������Լ�һ�н�������Kubernetes���M��Ԕ�����x��Kubernetes����Դ�a���O(sh��)Ӌ�c���F(xi��n)����B�ˎ׷N���͈����µ�Kubernetes���`�� �����m������һ��Docker���A(ch��)���_�l(f��)�����ܘ�(g��u)����IT���I(y��)�W(xu��)���Լ�̽������Docker��(g��u)����Ӌ��ƽ�_�ļ��g(sh��)�ˆT��Ҳ�dz��m�������У�̲Ļ���Ӗ(x��n)�Y����

Docker�����c������-��2�� ��(n��i)�ݺ���

����Docker 1.10��Kubernetes 1.2ȫ����� һ�����v͸Docker��Kubernetes ��Դ�a������Ƚ���Docker����ԭ��KubernetesԴ�a��ȫ���x *���` �V�����wDocker�߼����`����ȫ���������������Ƽ��g(sh��)�ܘ�(g��u)����

Docker�����c������-��2�� Ŀ�

**���֡�Docker������x
��1�¡��������������ơ���2
1.1����Ӌ��ƽ�_����2
1.2���������µĸ�������3
1.3���M�����������������ơ���7
��2�¡�Docker ���A(ch��)����8
2.1��Docker���b����8
2.2��Docker��������(sh��)���x����9
2.3������**��Docker��(y��ng)�×�����16
2.3.1��Docker��Ⱥ���𡡡�16
2.3.2��**��Hello World����17
2.3.3���_�l(f��)���yԇ�Ͱl(f��)��һ�w������27
��3�¡�Docker����ԭ�����x����28
3.1��Docker����ă�(n��i)��֪�R����28**���֡�Docker������x ��1�¡��������������ơ���2 1.1����Ӌ��ƽ�_����2 1.2���������µĸ�������3 1.3���M�����������������ơ���7 ��2�¡�Docker ���A(ch��)����8 2.1��Docker�İ��b����8 2.2��Docker��������(sh��)���x����9 2.3������**��Docker��(y��ng)�×�����16 2.3.1��Docker��Ⱥ���𡡡�16 2.3.2��**��Hello World����17 2.3.3���_�l(f��)���yԇ�Ͱl(f��)��һ�w������27 ��3�¡�Docker����ԭ�����x����28 3.1��Docker����ă�(n��i)��֪�R����28 3.1.1��namespace�YԴ���x����28 3.1.2��cgroups�YԴ���ơ���45 3.2��Docker�ܘ�(g��u)���[����53 3.2.1��Docker daemon����54 3.2.2��Docker client����54 3.2.3���R���������54 3.2.4��execdriver��volumedriver��graphdriver����55 3.2.5��network����55 3.3��client��daemon����56 3.3.1��clientģʽ����56 3.3.2��daemonģʽ����58 3.3.3����client��daemon����64 3.4��libcontainer����67 3.4.1��libcontainer�Ĺ�����ʽ����69 3.4.2��libcontainer���F(xi��n)ԭ������70 3.4.3��ʹ��runC�clibcontainer�M�н�������75 3.5��Docker�R���������77 3.5.1��ʲô��Docker�R�񡡡�77 3.5.2��Docker�R���P(gu��n)�I�����80 3.5.3��Docker�R��(g��u)����������81 3.5.4��Docker�R��ķְl(f��)��������84 3.6��Docker�惦��������87 3.6.1��Docker�R��Ԫ��(sh��)��(j��)��������87 3.6.2��Docker�惦�(q��)�ӡ���89 3.7��Docker��(sh��)��(j��)������99 3.7.1����(sh��)��(j��)����ʹ�÷�ʽ����100 3.7.2����(sh��)��(j��)��ԭ�����x����105 3.8��Docker�W(w��ng)�j(lu��)��������108 3.8.1��Docker�W(w��ng)�j(lu��)���A(ch��)����108 3.8.2��Docker daemon�W(w��ng)�j(lu��)����ԭ������116 3.8.3��libcontainer�W(w��ng)�j(lu��)����ԭ������119 3.8.4�����y(t��ng)��linkԭ����������125 3.8.5���µ�link��B����127 3.9��Docker�c������ȫ����129 3.9.1��Docker�İ�ȫ�C�ơ���129 3.9.2��Docker��ȫ���}����135 3.9.3��Docker��ȫ�Ľ�Q��������139 ��4�¡�Docker �߼����`���ɡ���151 4.1��������˼�S����151 4.1.1��SSH����(w��)���������������151 4.1.2��Docker��(n��i)��(y��ng)����־������������152 4.1.3��������˼�S�����ࡡ��153 4.2��Docker�߼��W(w��ng)�j(lu��)���`����153 4.2.1�����D(zhu��n)Linux networknamespace����154 4.2.2��pipeworkԭ����������159 4.2.3��pipework�����Cͨ�š���165 4.2.4��OVS����VLAN����170 4.2.5��OVS����ģʽ����174 4.3��Dockerfile*�ь��`����187 4.3.1��Dockerfile��ʹ�á���187 4.3.2��Dockerfile���`�ĵá���191 4.4��Docker�����ıO(ji��n)���ֶΡ���193 4.4.1��Docker�����O(ji��n)�ؾS�ȡ���194 4.4.2�������O(ji��n)�������195 4.4.3�����õ������O(ji��n)�ع��ߡ���197 4.5����������(y��ng)�Ø�(g��u)���Ļ��A(ch��)���߿����������ġ���201 4.5.1��etcd��(j��ng)�䑪(y��ng)�È�������201 4.5.2��etcd���F(xi��n)ԭ������206 �ڶ����֡�Docker��ƽ�_���x ��5�¡���(g��u)���Լ��������ơ���222 5.1����Մ��ƽ�_�ČӴμܘ�(g��u)����222 5.2����С�������ҡ���225 ��6�¡���ע�����c�����������cFleet����230 6.1������С����Fig/Compose����230 6.1.1����Մ���������c���𡡡�230 6.1.2��Composeԭ����һ̽��������233 6.2����ƽ�_�����h(hu��n)����������Machine����237 6.2.1��Machine�c̓�M�Cܛ������237 6.2.2��Machine�cIaaSƽ�_����238 6.2.3��MachineС�Y(ji��)����239 6.3����Ⱥ���󹤾�Swarm����240 6.3.1��Swarm���顡��240 6.3.2��ԇ��Swarm����241 6.3.3��Swarm��Ⱥ�Ķ�N��(chu��ng)����ʽ����243 6.3.4��Swarm��Ո���̎������245 6.3.5��Swarm��Ⱥ���{(di��o)�Ȳ��ԡ���245 6.3.6��Swarm��Ⱥ�߿��ã�HA������246 6.3.7��Swarm�cMachine����247 6.3.8��SwarmС�Y(ji��)����248 6.4������֮��Fleet����248 6.4.1���f���}�½Ƕȣ�Docker distro����249 6.4.2��Fleet��ԭ����������252 ��7�¡���ע��(y��ng)��֧�κ��\�Еr��Flynn��Deis����258 7.1��Flynn��һ��С�����ăɌӼܘ�(g��u)����258 7.1.1����0�ӣ������ƵĻ��A(ch��)�O(sh��)ʩ����259 7.1.2����1�ӣ������ƵĹ��ܿ�ܡ���259 7.1.3��Flynn�wϵ�ܘ�(g��u)�c���F(xi��n)ԭ������260 7.2��Մ?w��)�Deis�cFlynn����270 7.2.1����(y��ng)�ðl(f��)���ϵı��^����271 7.2.2���P(gu��n)��Deis��һЩ˼������273 ��8�¡�һ�н�������Kubernetes����274 8.1��Kubernetes�ǂ�ʲô�ӵ��Ŀ����274 8.2��Kubernetes���O(sh��)Ӌ���x����275 8.2.1��һ�����Ͱ�����Guestbook����275 8.2.2��pod�O(sh��)Ӌ���x����277 8.2.3��replication controller�O(sh��)Ӌ���x����288 8.2.4��service���O(sh��)Ӌ���x����294 8.2.5����һ������������replica set����306 8.2.6��Deployment����307 8.2.7��DaemonSet����312 8.2.8��ConfigMap����312 8.2.9��Job����317 8.2.10��Horizontal Pod Autoscaler����318 8.3��Kubernetes���ĽM�����x����320 8.3.1��Kubernetes�����w�ܘ�(g��u)����320 8.3.2��APIServer����321 8.3.3��scheduler����328 8.3.4��controller manager����338 8.3.5��kubelet����346 8.3.6��kube-proxy����352 8.3.7�����ĽM���f(xi��)�����̡���362 8.4��Kubernetes�惦����ԭ������366 8.4.1��volume�O(sh��)Ӌ���x����366 8.4.2��volume���F(xi��n)ԭ����������367 8.4.3��volumeʹ�ð�������368 8.4.4��persistent volume����371 8.5��Kubernetes�W(w��ng)�j(lu��)����ԭ������372 8.5.1����pod��IPģ�͡���373 8.5.2��pod�;W(w��ng)�j(lu��)��������374 8.5.3�����F(xi��n)Kubernetes�ľW(w��ng)�j(lu��)ģ�͡���377 8.6��Kubernetes����������c�YԴ���ơ���381 8.6.1��namespace�O(sh��)Ӌ���x����381 8.6.2��Kubernetes�Ñ��J�C�C�ơ���385 8.6.3��Kubernetes�Ñ��ڙ�(qu��n)�C�ơ���387 8.6.4��Kubernetes��S�YԴ����C��admission control����390 8.7��Kubernetes�߼����`����402 8.7.1����(y��ng)�ý����z�顡��402 8.7.2���߿����ԡ���405 8.7.3����־����408 8.7.4������DNS����410 8.7.5�����������ĭh(hu��n)������412 8.8��Kubernetesδ����򡡡�414 8.8.1��Ubernetes����414 8.8.2��petSet����415 8.8.3��performance����417 8.8.4��rescheduler����417 8.8.5��OCI�˜ʡ���419 8.9����Ҫֹͣ˼������419 �������֡���� ���A��Docker�İ��b����424 ���B����xDockerԴ���a�������������432 ���C��������Ϥ�_Դ�Ŀ����441 ���D��cgroups�Ĝyԇ�cʹ�á���444 ���E��cgroups��ϵ�y(t��ng)���Å���(sh��)��B����448 ���F��Kubernetes�İ��b����453 ��ӛ����457 ��Ϣ
չ�_ȫ��

Docker�����c������-��2�� ���P(gu��n)�Y��

“�mȻ�ڴ�֮ǰ�ѽ�(j��ng)������Docker�F꠳��ĵ�һ��Docker���������@�LJ���(n��i)��һ��������xDocker�cKubernetesԭ����ԭ��(chu��ng)�D�����@һ�c���x�ش����������^�����ؽ�B��Docker�cKubernetes�Ĺ���ԭ�������B(t��i)���dz��н��b���x��”——�Sʽ������ţ�ƴ惦CEO

“Docker�������g(sh��)�ѽ�(j��ng)�ڇ���(n��i)�����ݱ�������������㽭��W(xu��)SEL�����Ŀǰ�LJ���(n��i)����Docker���g(sh��)���쾚�ļ��g(sh��)�F�֮һ�������ڇ���(n��i)Docker���g(sh��)��һֱ�a(ch��n)������ҪӰ����@��������Docker�Č���(zh��n)��(j��ng)�R���ɕ������Ԏ��������Docker�ۺ��ߌW(xu��)��(x��)��һ�ֵČ���(zh��n)��(j��ng)���”——Ф�•r����(sh��)�˿Ƽ�CTO

“�����dz����µ��v����Docker���g(sh��)�ā���ȥ�}�ͼ��g(sh��)����(ji��)�������y����߀������Docker���B(t��i)��(d��ng)�е��������g(sh��)��Docker�@헼��g(sh��)�������nj���N˼��ͼ��g(sh��)�ںϵĮa(ch��n)���������B(t��i)��ҕ��ȥ���x���g(sh��)�ā���ȥ�}���O��ش��M�x�ߌ���Ӌ����������g(sh��)������˼����”——���@�������žW(w��ng)CTO
“�mȻ�ڴ�֮ǰ�ѽ�(j��ng)������Docker�F꠳��ĵ�һ��Docker���������@�LJ���(n��i)��һ��������xDocker�cKubernetesԭ����ԭ��(chu��ng)�D�����@һ�c���x�ش󡣱������^�����ؽ�B��Docker�cKubernetes�Ĺ���ԭ�������B(t��i)���dz��н��b���x��”——�Sʽ������ţ�ƴ惦CEO “Docker�������g(sh��)�ѽ�(j��ng)�ڇ���(n��i)�����ݱ�������������㽭��W(xu��)SEL�����Ŀǰ�LJ���(n��i)����Docker���g(sh��)���쾚�ļ��g(sh��)�F�֮һ�������ڇ���(n��i)Docker���g(sh��)��һֱ�a(ch��n)������ҪӰ����@��������Docker�Č���(zh��n)��(j��ng)�R���ɕ������Ԏ��������Docker�ۺ��ߌW(xu��)��(x��)��һ�ֵČ���(zh��n)��(j��ng)���”——Ф�•r����(sh��)�˿Ƽ�CTO “�����dz����µ��v����Docker���g(sh��)�ā���ȥ�}�ͼ��g(sh��)����(ji��)�������y����߀������Docker���B(t��i)��(d��ng)�е��������g(sh��)��Docker�@헼��g(sh��)�������nj���N˼��ͼ��g(sh��)�ںϵĮa(ch��n)���������B(t��i)��ҕ��ȥ���x���g(sh��)�ā���ȥ�}���O��ش��M�x�ߌ���Ӌ����������g(sh��)������˼����”——���@�壬���žW(w��ng)CTO “�������^�����L�������������Ƽ��g(sh��)�l(f��)չ���˳������B(t��i)ϵ�y(t��ng)��΢�^����Docker��Kubernetes������M������ȷ������oՓ��Docker���g(sh��)�ۺ�����߀��ϵ�y(t��ng)�ܘ�(g��u)�����ƶ��_�l(f��)����ϵ�y(t��ng)�������\�S�ˆT�������ڱ������ҵ��m���Լ���x��Ҫ�c���㽭��W(xu��)SEL�������Ӌ��F���һ֧�dz���(y��u)�����Ӌ���о��F����ܶ�85����90���˲Ż��S��피���^(q��)ǰ�������x�����܌������֪�R���ǻ۷e�۷���������”——�������ٶ��\�S���߼��ܘ�(g��u)�����ɴΰٶ���ߪ��@���� “�������㽭��W(xu��)SEL�������Ӌ��F꠶������Docker��������������g(sh��)�ĽY(ji��)�����������c���������������и��N���ð����ͼ����v�����������@���������������ذ�Docker����߅�a(ch��n)Ʒ����Ԙ�(g��u)���`���׃����ƽ�_����Ҳ�M�������ӵ��U���”——������΢Ӱ�r���ܘ�(g��u)������Go���l(f��)���̌���(zh��n)������ “Docker����������g(sh��)��Ҳ���������g(sh��)�������µĸ߶ȡ�InfoQ��2014������_ʼ�����P(gu��n)ע�������g(sh��)��Ҋ�C�����텢�c���������g(sh��)�İl(f��)չ�������҂��ă�(y��u)�����ߣ��㽭��W(xu��)SEL�������InfoQ׫���˺ܶ��cDocker��Kubernetes���P(gu��n)�ļ��g(sh��)���£��õ��ˏV���x�ߵĿ϶���ϣ���@�������Ƅ��������g(sh��)���Ї��������”——������InfoQ���� “�㽭��W(xu��)SEL����Ҍ��ڇ���(n��i)�^����|���о��_ԴPaaS���g(sh��)�ĈF�֮һ���Ă��y(t��ng)PaaS���_Դ����CloudFoundry��OpenShift������һ������Docker��PaaSƽ�_��DEIS��Flynn������������������о��͌��`��(j��ng)򞡣�����y�õ������������H���c�_Դؕ�I�����ҹP�����z��ͨ�^������Փ���ȷ�ʽ�e�O������������Ѓ�(n��i)���ļ��g(sh��)���������V�����c����(n��i)PaaS�ø��N���g(sh��)�������h���A��PaaS�F�Ҳ���c֮�����м�ȡ�˲��٠I�B(y��ng)���˴�������������팦Docker������Kubernetes��DEIS��Flynn��PaaS�_Դƽ�_���о��ɹ��Y(ji��)���Ƀԣ���(n��i)��Ԕ�M������\���������ţ��oՓ�����T��߀�����������܉���Ы@����”——���Ղ����A������ܛ��Ժ “�������g(sh��)�ڴ��ͻ�“(li��n)�W(w��ng)��I(y��)���яV����(y��ng)������Docker���������g(sh��)�еĽܳ��������������H��B��Docker���A(ch��)֪�R�������M���˴��a���������������ͨ�^��Kubernetes�ȼ��g(sh��)���v����������Ⱥ����ϵ�y(t��ng)�Լ���Docker���B(t��i)�I(l��ng)���˼����ͬ�r�Y(ji��)���˴������`����(n��i)���S����ֵ�Ó�����”——���������ٶ��\�S���߼��ܘ�(g��u)����JPaaS�Ŀؓ؟(z��)�� “Docker�������ϵ�y(t��ng)�����p������̓�M�����g(sh��)���{�躆�׵�ʹ�á����ٵIJ����Լ��`�����ݵļ���֧�ֵȃ�(y��u)�����춨��Docker�����PaaS�I(l��ng)��Ľ�����λ�� �㽭��W(xu��)SEL���������Ӌ��� PaaS�I(l��ng)����Ŷ����� �e�����S���Ľ�(j��ng)򞡣�������Ќ�DockerԴ���a�������Ƚ��x��Ҳ�Ќ���(zh��n)��(j��ng)�ķ�����ϣ���@�����܉����Docker�_�l(f��)���ڼ��g(sh��)�ϸ���һ�Ә���”——�����t��Λρ������A(ch��)���g(sh��)��JVM Architect��Ϣ

Docker�����c������-��2�� ���ߺ���

�㽭��W(xu��)ܛ�����̌���ң�Software Engineering Lab��SEL����Ӌ��F꠽M����2011�꣬�M����ʿ�ʹTʿ�о�������������@���_Դ����Ӌ�㼼�g(sh��)������Docker��Kubernetes��Cloud Foundry��OpenStack��CloudStack��Eucalyptus��Convirt��OpenShift�����e�O���_Դ��^(q��)ؕ�I���a�������ͅ��c���Ͼ���ӑՓ��^(q��)�����Ӈ���(n��i)����Ӌ�㼼�g(sh��)������l(f��)�ԡ����_Դ��^(q��)�鼼�g(sh��)�����аl(f��)ƽ�_���㽭��W(xu��)SEL�������4���ĕr�g����L��һ����M������������������Ӌ���аl(f��)�F���Ҳ�ڇ���(n��i)���_Դ��Ӌ����^(q��)����������Docker��Kubernetes��Cloud Foundry��^(q��)�õ��ˏV���J����

��Ʒ�uՓ(0�l)
���o�uՓ����
�������]
����N
��݋���]
����픲�
�ЈD�W(w��ng)
�ھ��ͷ�