什么是docker
你到市场上买了一堆菜和肉:咸鱼,鸡蛋,青菜,萝卜,熟食,水果等。这些菜都要装在一个冰箱里,不同的菜保质期不一样,味道也不一样,如果你将咸鱼和水果放在一起,水果就成了黑暗料理了。如果将鸡蛋随便丢,那很可能只要一开冰箱找食材,就会碰碎几个鸡蛋。聪明如你,肯定会将这些食材分门别类用不同的容器隔离存放。让一切都井然有序。
类似的,如果我们想在一台电脑上搭建各种开发环境:lnmp环境,java环境,nodejs,redis集群,python开发环境。显然,这些多的开发环境,如果集中在一台机器上构建,会让系统显得复杂,可能还会出现各种版本或依赖之间的不兼容。如果能将这些开发环境都独立开来,各个环境互相独立隔离,但又能互相通讯交互,相当于每个环境都是一个容器,这些容器可以独立提供服务,也能通信交互。
docker就是这样的容器技术。
用官方术语描述docker: Docker是基于Go语言实现的开源容器项目,有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。
通俗地理解:docker能让你在一台物理机上构建出很多个轻量极的开发环境。
为什么要用docker
传统的虚拟机也能实现环境的隔离,但虚拟机过于笨重,启动也慢,消耗的资源多。如果一台普通的个人电脑同时运行5个虚拟机实例,估计内存和CPU就扛不住了。
而docker不一样,docker很轻量级,对系统资源的需求很少。
docker容器的启动和停止可以在秒级实现,个人普通电脑同时运行上百个docker容器也没问题(在IBM服务器上可以同时实现运行10k量级的容器实例)
docker通过类似Git设计理念的操作来方便用户获取、分发和更新应用镜像。用户可以很方便地获取全球开发者共享的镜像
通过Dockfile支持灵活的自动化创建和部署机器,使流程标准化,很方便移植
如何在win10安装docker
docker最初只支持在linux上使用,现在已经能很好地支持win10,如果你是windows用户,强烈建议你用win10系统,win7和win8虽然也能运行docker,但还需要安装虚拟机,实现方式很笨重。win10是在操作系统底层就支持了docker。
安装docker的流程很简单:
到docker官网下载win10版本的安装包
安装很简单,一路下一步即可,中间可能会重启几次电脑,如果360之类的杀毒软件报错,要么信任这个安装程序,要么将杀毒软件关了。
docker需要操作系统开启虚拟化功能,在安装过程中会检测并自动开启
在任务管理中可看到是否有开启虚拟化功能:
安装完成后,可看到任务图标有个鲸鱼的图标,就是docker了
更换docker安装源
默认的docker安装源很慢,建议换成国内源,以阿里云的源为例:
需要先注册阿里云账号
在docker的设置中换上阿里云加速镜像
第一个docker镜像
打开win10的powershell
输入docker
可看到docker的相关信息
查看版本信息
PS C:\Users\34344> docker --version
Docker version 17.12.0-ce, build c97c6d6
用docker输出hello world
PS C:\Users\34344> docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:66ef312bbac49c39a89aa9bcc3cb4f3c9e7de3788c944158df3ee0176d32b751
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
以上指令表示你从docker镜像拉到了一个名为'hello world'镜像并执行成功。到此表示你的docker已经安装成功且正常执行
关于什么是docker的镜像,以及如何用docker在windows搭建完美的linux开发环境,请关注我的后续更新