专栏首页呼延Docker初步学习

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 安装 安装即可。

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

docker version

image文件

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

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

//列出所有镜像
images
//删除镜像
rmi
//设置镜像标签
tag
//构建一个新的镜像
build
//查看镜像的创建历史
history
//把镜像保存成tar
save
//拉取仓库里的image文件
docker pull

container文件

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

//创建一个新的容器
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


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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java8 Date Time Api

    java8里面新增了一套处理时间和日期的API,为什么要搞一套全新的API呢,因为原来的java.util.Date以及Calendar实在是太难用了。 如...

    呼延十
  • Java8 Date Time 使用案例

    对日期及时间的处理,我们都不陌生,但是总会有你不熟悉的新需求产生,毕竟产品经理的奇思妙想是很多的.

    呼延十
  • Mysql索引优化实例1

    PS:本文只讲解了一个实例,中间用到了两个mysql的索引相关概念,覆盖索引和最左前缀索引,需要读者自行学习一下.

    呼延十
  • Docker CheatSheet | Docker 配置与实践清单

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、...

    王下邀月熊
  • 一文零基础教你学会 Docker 入门到实践

    Docker 自 2013 年发布至今一直备受关注,从招聘面试角度来看有些职位对于了解 Docker、K8S 这些也有一些加分项,同时学习 Docker 也是后...

    五月君
  • 认识Docker

    Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托管在 GitHub 上, 基于Go语言并遵...

    暮雨
  • Docker1-架构原理及简单使用(终于把Docker讲明白了)

    LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的N...

    奋斗蒙
  • Docker入门第一节

    1、  什么是Docker Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以...

    苦咖啡
  • Docker 学习应用篇之三: Docker的简单实用

    安装完Docker之后,我们就可以简单的使用Docker,来体会Docker的用处。 首先看下Docker的常用命令,都是我在实用Docker的时候用到的命令:...

    ShenduCC
  • Mac 安装 Docker 及常用命令

    背景 微服务 + 容器,完美的一对!必须得好好学习学习。 安装步骤 Mac 下 Docker 的安装真心建议跟着官方的文档走一遍,官网已经讲的很详细了。 htt...

    zhisheng

扫码关注云+社区

领取腾讯云代金券