喵♂呜 的博客

一个刚毕业就当爹的程序猿 正在迷雾中寻找道路...

Docker简介和入门

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

简介

Docker 是一个开源的应用容器引擎 基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中 然后发布到任何流行的 Linux 机器上 也可以实现虚拟化。

容器是完全使用沙箱机制 相互之间不会有任何接口 (类似 iPhone 的 app) 更重要的是容器性能开销极低。

应用场景

Web 应用的自动化打包和发布。

自动化测试和持续集成 发布。

在服务型环境中部署和调整数据库或其他的后台应用。

从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

Docker 的优点

  1. 简化程序:
    • Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中 然后发布到任何流行的 Linux 机器上 便可以实现虚拟化 Docker改变了虚拟化的方式 使开发者可以直接将自己的成果放入Docker中进行管理 方便快捷已经是 Docker的最大优势 过去需要用数天乃至数周的任务 在Docker容器的处理下 只需要数秒就能完成。
  2. 避免选择恐惧症:
    • 如果你有选择恐惧症 还是资深患者 Docker 帮你打包你的纠结 比如 Docker 镜像 Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作 比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
  3. 节省开支:
    • 一方面 云计算时代到来 使开发者不必为了追求效果而配置高额的硬件 Docker 改变了高性能必然高价格的思维定势 Docker 与云的结合 让云空间得到更充分的利用 不仅解决了硬件管理的问题 也改变了虚拟化的方式

安装

详见 Docker常见问题和解决方案

使用

输出 Hello World

1
2
[root@206 ~]# docker run --rm alpine /bin/echo "Hello Wrold"
Hello Wrold

进入交互式环境

1
2
3
4
5
[root@206 ~]# uname -a
Linux 206 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@206 ~]# docker run -it --rm alpine
/ # uname -a
Linux 1fb4066a086c 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 Linux

Docker Machine

详见 DockerMachine的安装与使用

Docker Swarm

详见 DockerSwarm的安装与使用

Docker Compose

详见 DockerCompose的安装与使用

欢迎关注我的其它发布渠道