本文来自网易云社区

本人DBA一枚,但因为工作的关系,接手的机器越来越多,要部署的东西也从MySQL扩展到其他千奇百怪的各种应用服务,因此需要使用自动化部署的场景也越来越多。早就听运维部的其他大大们说过Docker可以方便的打包镜像、自动化部署,但是最近才抽出时间来学习下。这篇文章就以一个docker小白的身份,介绍下Docker是什么,可以做什么,以及使用入门ABC。

1. Docker是什么
        a) Docker 可以理解成一个超轻量级的虚拟机,专业的说法叫应用容器,它是在LCX(linux容器)基础上进行的封装。

        b) Docker和传统虚拟化方式的不同之处在于容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
        c) 相较于传统的VM虚拟化方法,Docker的好处是启动速度快,资源利用率高,性能开销小。

        
2. Docker可以用来干什么
        a)简化部署,优化运维管理方案
           这是Docker最吸引我的一点,是我学习Docker的动力= =。现在互联网服务的架构日趋复杂,不同程序模块依赖的环境千奇百怪,使用的机器也越来越多,导致部署一套环境成本越来越高,而且还不便于管理和迁移。由于Docker是在操作系统级别的封装,因此可以把不同的程序分别打包成镜像,管理只需要管理这些镜像即可,上线时直接把image批量部署到线上多台服务器上,岂不美哉。
        b)优化资源使用
           现在物理机性能普遍比较强悍,虚拟化是一种很好的隔离方案,但是Docker又是在KVM、Xen和完全不虚拟化之间的一种折中。
3. Docker使用入门
          使用dcoker其实很简单,只要理解和会用三个东东就可以了:镜像(Image)容器(Container)仓库(Repository)
a)镜像:
    Docker 镜像就是一个只读的模板。一个镜像可以包含一个完整的操作系统环境,里面仅安装了 Apache或用户需要的其它应用程序。镜像可以用来创建Docker容器。Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
1. 安装docker
apt-get install docker
2. 启动docker
sudo service docker start
3. 下载镜像
搜索镜像:docker search
下载镜像:docker pull
查看本地镜像:docker images
b)  容器
        Docker 利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
4.创建容器
docker run -t -i rangalo/debian /bin/bash
其中,-t选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。更多的时候,需要让Docker容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加-d参数来实现。
 
5.查看容器
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
36a125947dec rangalo/debian:latest "/bin/bash" 7 minutes ago Exited (130) 4 minutes ago elegant_babbage
 
6停起容器
docker start 36a125947dec
 
7.本地登陆容器
sudo docker attach 36a125947dec
c) 仓库
       仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。当然,用户也可以在本地网络内创建一个私有仓库。
       当用户创建了自己的镜像之后就可以使用push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。
写在最后:
        本文只是一篇入门小品,Docker当然不只是这么点东西,还有数据管理、网络配置一堆东西可以玩。当然最重要的是要能用在实际的生产环境上,目前线上用这个东东的经验还不是很多,等以后线上踩过几回坑后再和大家来分享 ^ ^
 
 
 
最后还是盛情邀请大家来试用一下网易云计算基础服务,感受下docker容器服务的乐趣, 点击可免费试用
 
 

本文来自网易云社区,经作者潘威
授权发布。

原文:Docker小白使用笔记

网易云新用户大礼包:https://www.163yun.com/gift

Docker小白使用笔记的更多相关文章

  1. Docker小白到实战之容器数据卷,整理的明明白白

    前言 上一篇把常用命令演示了一遍,其中也提到容器的隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失.从隔离性的角度来看,数据就应该和容器共存亡:但 ...

  2. Docker小白到实战之Dockerfile解析及实战演示,果然顺手

    前言 使用第三方镜像肯定不是学习Docker的最终目的,最想要的还是自己构建镜像:将自己的程序.文件.环境等构建成自己想要的应用镜像,方便后续部署.启动和维护:而Dockerfile就是专门做这个事的 ...

  3. Docker小白到实战之Docker网络简单了解一下

    前言 现在对于Docker容器的隔离性都有所了解了,但对容器IP地址的分配.容器间的访问等还是有点小疑问,如果容器的IP由于新启动导致变动,那又怎么才能保证原有业务不会被影响,这就和网络有挂钩了,接下 ...

  4. Docker Stack 学习笔记

    该文为<深入浅出Docker>的学习笔记,感谢查看,如有错误,欢迎指正 一.简介 Docker Stack 是为了解决大规模场景下的多服务部署和管理,提供了期望状态,滚动升级,简单易用,扩 ...

  5. Docker 简单使用笔记

    Docker笔记 安装   首先检查是否已经安装过Docker:yum list installed | grep docker,如果已经安装过需要删除旧的Docker:yum remove dock ...

  6. Docker&K8S学习笔记(一)—— Docker安装

    最近一年在工作上经常使用Docker与K8S,除了利用其打镜像,部署服务外,还基于Docker与K8S开发了一套CICD流水线平台,为了加深相关知识点的理解,所以从今天开始会定期更新学习笔记,本套学习 ...

  7. docker入门-学习笔记

    docker可以类比成window下的VMware或者virtualbox软件.docker有两个基本的概念:容器(container)和镜像(image),分别对应为VMware中的系统镜像和系统镜 ...

  8. Docker compose学习笔记

    一.compose compose 作用 你的应用可能需要很多个服务,比如web服务,数据库服务,缓存服务等等.我们可以把这些服务放到单独的容器里面,如果手工去配置这些服务会有些麻烦,docker c ...

  9. [Docker] docker 基础学习笔记6(共6篇)

    这个迁移指的是docker整个系统的迁移,而不是说images存储位置迁移 docker info 查看docker的各项配置   首先做文件的迁移 使用rsync软件将docker的文件夹整体迁移到 ...

随机推荐

  1. C++写和读文件

    1.写: /*C++写文件和读文件*/ #include <stdio.h> #include <stdlib.h> int main() { FILE * fp; fp = ...

  2. BZOJ 4199 [Noi2015]品酒大会:后缀数组 + 并查集

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4199 题意: 给你一个长度为n的字符串s,和一个长为n的数组v. 对于每个整数r∈[0,n ...

  3. linux-常用指令2

    命令链接符                                                                                               ...

  4. nodejs stream & buffer 互相转换

    stream 转 buffer function streamToBuffer(stream) { return new Promise((resolve, reject) => { let b ...

  5. Windows 下GitHub 安装和使用

    一.官网注册和设置 1.登录官网,注册账号,其中用户名以后会用到. 2.创建仓库.使用公开仓库方式创建,公开仓库免费.(右上角->加号->new repository) 第一行:仓库名字. ...

  6. vscode 小笔记

    用户设置: { "git.ignoreMissingGitWarning": true, "workbench.statusBar.feedback.visible&qu ...

  7. 如何生成HLS协议的M3U8文件

    什么是HLS协议: HLS(Http Live Streaming)是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件 ...

  8. bzoj3595 方伯伯的oj

    有$n$个数,一开始是$1~n$,有$m$次操作 1.把编号为$x$的人编号改为$y$,保证$y$没出现过 2.把编号为$x$的人提到第一名 3.把编号为$x$的人怼到最后一名 4.查询排名为$x$的 ...

  9. Hihocoder1662 : 查找三阶幻方([Offer收割]编程练习赛40)(暴力)

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个N x M的矩阵,请你数一数其中有多少个3 x 3的子矩阵可以构成三阶幻方? 如果3 x 3的矩阵中每一行.每一列 ...

  10. netty中的引导Bootstrap服务端

    引导一个应用程序是指对它进行配置,并使它运行起来的过程. 一.Bootstrap 类 引导类的层次结构包括一个抽象的父类和两个具体的引导子类,如图 8-1 所示 服务器致力于使用一个父 Channel ...