docker初体验

什么是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版本的安装包

docker下载地址

下载docker.png

安装很简单,一路下一步即可,中间可能会重启几次电脑,如果360之类的杀毒软件报错,要么信任这个安装程序,要么将杀毒软件关了。

docker需要操作系统开启虚拟化功能,在安装过程中会检测并自动开启

在任务管理中可看到是否有开启虚拟化功能:

虚拟化.png

安装完成后,可看到任务图标有个鲸鱼的图标,就是docker了

更换docker安装源

默认的docker安装源很慢,建议换成国内源,以阿里云的源为例:

阿里云docker镜像加速器

需要先注册阿里云账号

阿里云加速

在docker的设置中换上阿里云加速镜像

设置镜像加速.png

第一个docker镜像

打开win10的powershell

输入docker可看到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开发环境,请关注我的后续更新

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能

在MacOs上用Docker开发

这是在开发者和运营团队之间的对话中经常听到的借口。即使使用复杂的工具,云中几乎没有限制的计算能力以及先进的持续集成工作流程,本地开发应用程序与在生产环境中运行应...

3760
来自专栏jiajia_deng

当漏 – 针对技术人员的软件下载站

912
来自专栏Bug生活2048

接手老项目的痛——MongoDB学习及集群搭建

mongodb的集群搭建方式主要有三种,主从模式,Replica set模式,sharding模式, 三种模式各有优劣,适用于不同的场合,属Replica se...

531
来自专栏JAVA同学会

JMeter分布式测试

  这篇文件将介绍如何使用多系统执行压力测试。在开始之前,我们有几件事情要确定一下。

651
来自专栏技术视点

云自动化工具:WinRM vs SSH

[文章最初由Barak Merimovich撰写]

2596
来自专栏Laoqi's Linux运维专列

jumpserver基础搭建及配置

1093
来自专栏资深Tester

你会搭建测试环境吗?

7665
来自专栏北京马哥教育

Docker容器构建过程的安全性分析

DevOps概念的流行跟近些年微服务架构的兴起有很大关系,DevOps是Dev(Development)和Ops(Operations)的结合,Dev负责开发,...

500
来自专栏Python

CentOS下使用crontab+mysqldump实现定时自动备份数据库

最主要的原因:尽可能地减少损失,包括时间上、精神上和金钱上的损失。很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据。要知道,在地球上网是很危险的,即使...

630
来自专栏FreeBuf

快讯 | FireEye在GitHub上开源密码破解工具GoCrack

近日,FireEye 开源了一款密码破解工具 GoCrack,可在多机器上部署破解任务。 GoCrack 是由 FireEye’s Innovation and...

2309

扫码关注云+社区