docker入门(上)
最近组里有同事分享了docker,结合自己平时的使用,觉得挺有意思。所以稍微研究了一下,总结了三篇文章。第一...
最近组里有同事分享了docker,结合自己平时的使用,觉得挺有意思。所以稍微研究了一下,总结了三篇文章。
第一篇主要是说docker的一些基本概念,已经常用的命令、基本操作,以及我了解的国内的docker镜像的情况。
第二篇则是完全实战,通过两种方式打出一个自己平时开发使用web环境的镜像,从而能够快速的复制出去给其他相应的开发人员,降低环境配置的成本。
第三篇侧重于不大大而全的镜像,而是只打基本的镜像,如php、nginx、mysql的镜像等,既是给自己一个积累,也可以分享给别人用,何乐而不为呢?
以下就是第一篇的内容:
什么是docker
这些都是官方的说法,我对于docker的理解,就是一个能够快速的管理应用和操作系统池子的工具,在本地可以通过docker快速的启动运行被称为“镜像”的应用或操作系统。一旦运行起来,我们就可以对其进行修改,所以这时它被称为“容器”。我们的更改会层式的叠加,最后我们可以把更改后的结果打成一个全新的镜像。就像图中所示:Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会,遵从了Apache 2.0协议,项目代码在Github上维护。
Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。其基础是Linux容器(LXC)技术。
docker具有的如下优势,使得它在虚拟化技术中独树一帜:
- 容器启动可以在秒级实现
- 效率很高,系统开销特别小
- 交付和部署更快,就像搭积木游戏,搭出你心意的形状后,可以按照固定的模式快速复制。
- 迁移和扩展性很好,物理机、虚拟机、公有云、私有云、个人电脑、服务器等都可以用
- 管理更简单
基本概念
images:镜像,是对一组软件的快照,拿过来就能够直接运行containers:容器,镜像运行的实例,能够被修改,从而生成新的镜像。
docker hub:官方存放、发布镜像的地方。
mac上使用docker
对于mac上使用docker,官方文档在这里:https://docs.docker.com/engine/installation/mac/要求OS X10.8及以上。
可以看到,在mac上,比linux上直接使用docker多了一层虚拟化。为了做到这一点,mac的docker-toolbox其中有一个小型的linux操作系统boot2docker,同时也借助了oracle的virtualbox。
- 下载docker toolbox
- 安装
- 装完之后,就可以看下面的基本命令了
基本命令
mac上docker初始化的基本命令:
// 创建一个docker,这同时会在virtualbox创建一个虚拟机
docker-machine create --driver virtualbox development
// 列举现有的docker
docker-machine ls
// 连接名为development的docker-machine
docker-machine ssh development
完成连接了之后,就可以进行docker的撒欢了:
// 从docker-hub中拉取名为hello-world的镜像查看端口信息:
docker pull hello-world
// 镜像跑起来
docker run hello-world
// 列出所有的镜像
docker images
// 列出正在运行的容器
docker ps
// 拉取并启动nginx镜像,容器名为web,-P表示开放端口给你的mac访问
docker run -d -P --name web nginx
docker port web
443/tcp -> 0.0.0.0:49156
80/tcp -> 0.0.0.0:49157
查看development这个docker对应的ip:
docker-machine ip development
192.168.99.100
在mac本机上访问
192.168.99.100:49157即可看到nginx的欢迎页面!
对于镜像管理的问题,一开始我是想在docker-hub上面进行所有的镜像管理的,但是却发现网络连接的速度非常的慢。所以只好寻求国内的解决方案,其中有如下这么几个:
- daocloud
- 阿里云
- 网易云
- 云雀
- 。。。
对于常用的镜像,这些国内厂商都会定期去同步一份最新的到国内服务器上的,centos这种也不可能天天更新,所以时效性上问题不大。而自己管理自己镜像的时候,快速存取是关键,这样就可以把环境放在云上,完全不用机器搬来搬去了!
关注 小白学web
微信扫一扫关注公众号