为什么要看docker

从去年起就或多或少的接受了docker的熏陶,主要还是Infoq在去年有很多关于docker的实践视频讲座,记得有一篇是《Docker在雪球的技术实践》,当时听的也不是很明白,就萌生了了解docker的想法。

可惜由于工作的关系,一直没有接触到这方面的内容,因此学习的计划也就暂时搁置。直到前不久京东促销买了本docker的书籍、又上网买了本盗版的电子书,想趁着春节好好学习一番,没想到回家就玩了。

直到最近抽出时间读一下《第一本docker书》,就当做先了解了解。

我理解的docker

通过看了前几章的书,以及百度了解,大体上理解了什么是docker。

按照我的理解,docker其实就是一种虚拟化的技术。就像virtualBox,你可以在windows上安装,然后通过不同的镜像装不同的系统。而docker也是差不多,只不过它不是一种操作系统,而是在原生的系统之上直接虚拟出一个容器。这个容器有独立的进程、权限、资源、网络等等。

docker的口号跟java有点像,一次编写,到处运行。因为docker本身作为一种容器,在什么地方安装都是一样的(现在对平台还是有一定要求的),而不管内部装的是什么。

因此开发者只要写代码然后把程序放在容器中运行起来就行;运维人员呢,只需要了解怎么部署docker容器就可以了。

这样就完全解决了,开发完的东西在开发人员自己电脑上好使,到别人电脑上就不好使的问题。

docker能做什么

通过上面的介绍,大致了解docker的生命周期可能是这样的:

  • 构建:构建容器
  • 分发:CI持续集成,部署,镜像
  • 运行:以守护进程的方式运行

那么docker到底都可以做什么呢?

  • 加速本地开发、构建流程
  • 在不同的环境中,得到相同的运行结果
  • 隔离的环境测试
  • 构建Paas

不过需要注意一点的是,docker目前对安装环境还是有一定要求的。比如:

  • 1 64位CPU
  • 2 3.8+内核
  • 3 存储驱动,
  • 4 内核开启cgroup和命名空间

docker的常用命令

运行容器:

sudo docker run -i -t ubuntu /bin/bash

查看容器列表:

docker ps -a

容器命名:sudo docker run --name bob_the_container -i -t ubuntu /bin/bash

重新启动:

sudo docker start bob_the_container

创建守护容器:

sudo docker run --name daemon_dave -d ubuntu /bin/bash -c "while true;do echo hello world; sleep 1;done"

带时间查看日志:

sudo docker logs -ft daemon_dave

查看容器内的进程:

sudo docker top daemon_dave

容器内运行进程:

sudo docker exec -d daemon_dave touch /etc/new_config_file

交互式运行进程:

sudo docker exec -t -i daemon_dave /bin/bash

停止守护进程:

sudo docker stop daemon_dave或者sudo docker stop 43wqihds8324

自动重启容器:

sudo docker run --restart=always --name daemon_dave -d ubuntu /bin/bash -c "while true;do echo hello world; sleep 1;done"

查看容器详细信息:

sudo docker inspect daemon_dave

删除容器:

sudo docker rm 823919fdsfdas3

删除所有容器:

docker rm 'docker ps -a -q'

Docker容器入门的更多相关文章

  1. 自动化集成:Docker容器入门简介

    前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译.打包.镜像构建.部署等操作:本篇文章主要描述Docker基础用法. 一.Docker简介 1.基础 ...

  2. docker容器入门最佳教程

    为什么要写这个 简单回答是:容器技术非常热门,但门槛高. 容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行. 对 IT 行业来说,这是一项非常有价值的技术.而对 I ...

  3. Docker容器入门篇

    第1章 Docker简介 1.1 Docker容器介绍 Docker官网:https://www.docker.com/ 什么是docker? Docker 最初是 dotCloud 公司创始人 So ...

  4. Docker容器入门实践

    Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 ...

  5. Docker容器入门介绍

    1.前言 Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机.不过,Docker 跟传统的虚拟化方式相比具有众多的优势.Docker: 本意是码头工人,言外之意是集装箱: Java号称 ...

  6. Docker 容器入门

    1.1 容器简介 1.1.1 什么是 Linux 容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件.容器提供的镜像包含了应用的所有依赖项, ...

  7. Docker容器入门之一:部署SpringBoot项目

    一.环境准备:    1.vm虚拟机: Workstation 12 Pro 12.5.7 build-5813279 2.Centos 7 在虚拟机上安装好Centos7系统后,就可以开始准备安装D ...

  8. Docker容器入门-基本命令的使用

    目前容器技术使用相当广泛 不会或者没有使用过容器感觉都不像是个搞技术的 所以,我也就docker相关内容做一个整理 只有不断的学习,才能保持自己的竞争力 什么是容器? 容器是一种轻量级.可移植.自包含 ...

  9. 自动化集成:Pipeline整合Docker容器

    前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译.打包.镜像构建.部署等操作:本篇文章主要描述流水线集成Docker用法. 一.背景描述 微服务架构 ...

随机推荐

  1. AngularJS 页面基本操作

    一.避免预先加载angular模板语法 <style> [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, ...

  2. Swift基础语法(一)

    swift是一个基于objc进化过来的一个新的 OS X/IOS编程语言,而objc是基于c语言进化过来的一门编程语言.所以理论上说objc与c++是同一代产物并且objc与c++是相互独立的两套体系 ...

  3. oracle 小题

    create table student(sno varchar2(10) primary key,sname varchar2(20),sage number(2),ssex varchar2(5) ...

  4. [Python] Pitfalls: Be Careful with os.chdir

    One thing you need to keep in mind is that when using os.chdir to change the working directory of cu ...

  5. DB2 错误信息码

    000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 01568 动态SQL语句用分号结束 +1 ...

  6. 查看上下文切换的多的进程(find which process take the most context switch)

    这是原文链接http://serverfault.com/questions/190049/find-out-which-task-is-generating-a-lot-of-context-swi ...

  7. AOP 事务

    定义 AOP实际可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术,非业务类横切于业务类), 通过AOP以动态和非入侵方式来增强服务 事务的四大属性:ACID ...

  8. 转 jdk1.5新特性 ConcurrentHashMap

    ConcurrentHashMap特点:效率比Hashtable高,并发性比hashmap好.结合了两者的特点.   集合是编程中最常用的数据结构.而谈到并发,几乎总是离不开集合这类高级数据结构的支持 ...

  9. 项目修改有感_主要是以js、Gridview为主

    1.弹出提示:confirm--弹出的窗口有确认.取消按钮 alert--弹出的窗口只有确认按钮 例:若需要在点击确认后执行其他操作(confirm) var toAlert = confirm(&q ...

  10. Oracle Created (Default) Database Users

    http://www.idevelopment.info/data/Oracle/DBA_tips/Database_Administration/DBA_26.shtml DBA Tips Arch ...