Docker初步学习

公司的服务都使用Docker部署,虽然这块和我关系不大,但是我在测试环境启动时,老是会报错,所以我打算学习一下基本的Docker知识,方便自己在测试环境调试。

什么是Docker?

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

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

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

用网上大家流传的一个比喻就是:

Docker提供类似于集装箱的机制。

将你要运行的应用放到一个docker容器(容器里配置该应用运行的环境)里面,他就可以到处运行,不会出现各种环境冲突的问题。

经过一下午的学习,我对Docker的理解是:一个轻量级的虚拟机。

虚拟机大家都使用过,他只依赖与系统的硬件,可以在windows里面创建一个macos或者linux,但是他对资源的消耗/浪费非常严重,而Docker的隔离程度没有虚拟机那么高,同时共享操作系统,对资源的利用率更好。

现在有一个linux机器:

使用虚拟机可以获得:x个A OS,y 个BOS,z个COS。。。

使用Docker可以获得h 个 linux。

而h >> x + y + z;

Docker的应用场景

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

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

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

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

docker的几个概念

  1. docker images :镜像,用于创建容器的模板。
  2. docker container : 容器,运营应用
  3. docker registry : 仓库,保存image。

docker的安装

安装过程比较简单,这里不再叙述,按照官方网站或者runoob docker ubuntu 安装 安装即可。

安装完成后可以通过下面的命令检验是否安装成功。

1
docker version

image文件

Docker 把应用程序及其依赖,打包在 image 文件里面。以image文件为模板,可以生成一个Docker容器。

Image 相关的命令及作用如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//列出所有镜像
images
//删除镜像
rmi
//设置镜像标签
tag
//构建一个新的镜像
build
//查看镜像的创建历史
history
//把镜像保存成tar
save
//拉取仓库里的image文件
docker pull

container文件

根据image文件生成的docker容器也是一个文件,相关的docker命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
//创建一个新的容器
docker run
//启动/停止/重启一个容器
docker start/stop/restart
//杀掉运行中的容器
docker kill
//删除容器
docker rm
//查看运行中的容器
docker ps
//查看运行中容器的log
docker logs

在应用层面的docker并不难,这也说明了docker这个项目的优秀,让我这种一知半解的人也可以使用。

由于我也只看了一下午,对docker也没有太多深入理解,但是跟着教程做了一遍之后,也可以对公司测试环境的一些脚本进行调试了。基本满足当前使用了。

Docker后续学习资料

  1. 阮一峰老师的docker教程点击这里

  2. runoob的教程,这个强烈推荐一下,按照教程可以对所有的docker命令进行一次自己的尝试,更加方便理解。点击这里

  3. docker中文官网点击这里

  4. docker官方博客点击这里


完。



ChangeLog

2018-10-17 完成

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。

联系邮箱:huyanshi2580@gmail.com

更多学习笔记见个人博客——>呼延十