14年docker火了一阵,当时自学整理了一份文档,后来冷落了。
现在发现很多同事还是想学习docker,但无从下手,所以重新整理了这篇分享,10分钟就可以带你彻底理解docker,并能够创建属于自己的镜像。
 
1、docker
docker是一个打包工具,非常强大,能把操作系统也打在包里,进行无差别部署和运行。
所以docker也被认为是建立在操作系统上的虚拟机。
很多优秀的开源软件都提供了docker镜像,避免了繁琐的环境准备和安装,初学者可以一键完成部署。
 
2、基本概念
镜像( image):
类似操作系统的镜像,完整定义了一个可运行的系统,可以理解成一个虚拟机模板。操作系统、基础组件、应用程序、初始化命令都可以打包在一个镜像中。
实例(container):
实例是从某个docker镜像创建出来的的可运行单位,可以启动、关闭、删除,可以理解成一台虚拟机, 同一台物理机上的多个container互相隔离。
 
3、简单使用
#安装docker(centos6.5以上)
yum install -y epel-release
yum update -y device-mapper
yum erase -y docker
yum install -y docker-io
service docker status
 
#从官方仓库中下载image
docker pull centos
docker pull ubuntu
 
# 查看本地可用的image
docker images
 
#用centos镜像,创建一个实例(container)并起动
docker  run  centos
 
#用centos镜像,创建一个实例并起动,监听8080端口,映射到实例内里的8080端口
docke run -p 8080:8080 centos
 
#查看正在运行的docker实例
docker ps
 
#查看所有docker实例
docker ps -a
 
#起动/关闭/删除实例
docker start/stop/rm $container_id
 
#shell登录进正在运行的实例
docker  exec  -it  $container_id  bash
 
#把一个实例提交成一个本地镜像,下次可以直接用这个镜像创建实例
docker commit $container_id $image_name
 
#实例里的文件,都被存放在一个特定位置,可以方便的物理机层直接编辑或者复制
/var/lib/docker/devicemapper/mnt/$container_id............./rootfs/
 
4、创建Dockerfile镜像文件,快速分发打包应用
mkdir test_image
cd  test_image
#创建 Dockerfile
vi  Dockerfile
# 自定义image
#继承一个已有的镜像,这里用cetos作为基础
FROM centos
MAINTAINER Luo <luochongyang@yazuo.com>
 
#安装一些基础组件
RUN yum install -y java-1.7.0-openjdk
 
#把应用程序放入镜像(app1.tar.gz 事先放在同级目录下 )
RUN mkdir /yazuo_apps/
ADD app1.tar.gz /yazuo_apps/
 
#打包镜像,镜像名为 app1,版本为1.0
docker build -t app1:1.0 .
 
#启动镜像,并启动app1,把本机的8080端口映射到容器的8080端口
docker run -d -p 8080:8080 -it /yazuo_apps/app1/start.sh
 
#导出二进制镜像(直接通过二进制文件来分发镜像到其他机器)
docker  save  -o app1-1.0.image  app1:1.0
 
 

docker基本概念,创建、起动实例,保存自定义镜像等常用操作的更多相关文章

  1. Docker学习(六)Dockerfile构建自定义镜像

    Docker学习(六)Dockerfile构建自定义镜像 前言 通过前面一篇文章可以知道怎么去使用一个镜像搭建服务,但是,如何构造自己的一个镜像呢,docker提供了dockerfile可以让我们自己 ...

  2. docker 笔记(基本概念、快速运行、自定义镜像)

    1.docker docker是一个打包应用的工具 非常强大,能把操作系统也打在包里,进行无差别部署和运行. 所以docker也被认为是建立在操作系统上的虚拟机.   2.基本概念 镜像(image) ...

  3. Docker 基本概念(三)-生命周期详解(镜像、容器、仓库)

    Docker三大组件:镜像.容器.仓库.  一.镜像 1 从仓库获取镜像 #一.从仓库获取镜像,帮助命令:docker pull -help 命令:docker pull [选项] [docker R ...

  4. 二、docker 镜像容器常用操作(让我们用docker 溜得飞起)

    前言 上篇讲了我们如何安装docker,现在该我们一展拳脚的时候了.接下来让我们一起学习一下docker常见的操作,让我们能够会使用 docker. 基本概念 在讲使用之前,还是先将一下docker ...

  5. Docker 镜像的常用操作

    镜像作为 Docker 三大核心概念中,最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌握的.本文将带您一步一步,图文并重,上手操作来学习它. 目录 一 Docker 下载镜像 1.1 下 ...

  6. Java实例 Part4:数组及其常用操作

    目录 Part4:数组及其常用操作 Example01:将二维数组的行列交换 Example02:使用选择排序法对数组进行排序 Example03:使用冒泡排序法对数组进行排序 Example04:使 ...

  7. 使用docker创建含有FFmpeg的自定义镜像

    Dockerfile文件 FROM openjdk:8-jre-alpine MAINTAINER "yvioo" RUN echo "http://mirrors.al ...

  8. docker镜像的常用操作

    获取镜像 比如说我们可以这样操作 当然把这个镜像拉过来时间非常长.   查看镜像列表 命令: docker images 说明: 使用docker images命令可以列出本地主机上已有的镜像. 信息 ...

  9. 菜鸟系列docker——docker基本概念(1)

    docker基本概念 1.准备 这里先介绍容器技术,后续再介绍docker.docker是容器的一种,除docker以外,还存在coreos.不过在当前趋势下容器和docker基本上可以划为等号了. ...

随机推荐

  1. Careercup - Microsoft面试题 - 5173689888800768

    2014-05-11 05:21 题目链接 原题: Complexity of a function: int func_fibonacci ( int n) { ) { return n; } el ...

  2. 文件和文件夹同步工具AFiles 1.0 发布

    文件和文件夹同步工具AFiles 1.0  正式发布了! 本软件支持按文件日期或长度的各种比较方式来同步文件或者文件夹. 支持双向同步功能. 支持深层文件夹功能. 可以自动产生比较和同步的记录情况. ...

  3. Codeforces Round #278 (Div. 2)

    题目链接:http://codeforces.com/contest/488 A. Giga Tower Giga Tower is the tallest and deepest building ...

  4. Windows+Apache+MySQL+PHP(WAMP)环境搭建

    运行操作系统:Windows Server 2008 R2 Apache版本:Apache 2.2 MySQL版本:MySQL 5.5 PHP版本:PHP 5.6.14(当前最新版) 更新日期:201 ...

  5. JavaScript在IE6,IE7下报错'expected identifier, string or number'

    问题: 代码在Forefox和IE8下工作正常,但是在IE6下报错: expected identifier, string or number 假如变量options有多个选项,那么我们可以用逗号分 ...

  6. .NET设计模式(9):桥接模式(Bridge Pattern)(转)

    概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就 ...

  7. Java多线程程序设计详细解析

    一.理解多线程 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立. 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线 ...

  8. 《JavaScript高级程序设计》

    第二章在html中使用Javascript2.1<script>在使用<script>嵌入JS代码时,不要再代码中的任何地方出现"</script>&qu ...

  9. 利用URLRewriter.dll 实现ASP.NET实现伪静态

    大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访 ...

  10. HDOJ 1709 The Balance(母函数)

    The Balance Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...