docker基本概念

1.准备

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

1.1 容器是什么?

谈到容器,大家可能很熟悉,就和大家在工地看到的集装箱房子一样,里面基本设施都有,多个集装箱房互不干扰,公用一些水电基本设施,当需要换个地方是时候,把集装箱搬过去就行。而这里的容器就是这样的一种技术,可以把我们开发的一些程序,所需要的环境进行打包,使得我们的应用程序可以在虚拟机、服务器、云服务等平台跑,而不需要在各个平台搭环境,在运行程序。容器是一种轻量级、可移植等软件打包技术。
容器一般由2部分组成,应用程序和依赖库或依赖的其他程序。可能说到这里,就有人问这和虚拟机有啥区别,都是需要一台宿主机运行,虚拟化出自己的环境跑自己的代码。这里我们就进行简单的分析:

  • 虚拟机:需要宿主机上虚拟硬件,在此基础上再部署系统,再部署应用。
  • 容器:直接在宿主机运行,就和一个进程差不多

1.2 容器有哪些优点?

各位是否存在本地跑的好好的,在交付的时候发现问题一大堆,不是缺这个就是缺那个。最后来了句“在本地跑的好好的”。此时,由于环境问题,你可能就凉了。
这个时候,容器就可以大显神威,容器就把集装箱的思维用在IT上,我们可以将环境、依赖及程序全部打包成一个容器,在其他环境直接运行这个容器就好,就可以不考虑什么环境问题,缺库问题来。通过容器可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。

2.docker技术

上面简单介绍来下容器是什么?容器能干啥?接下来肯定就是怎么干了?后续对容器的操作本系列将逐步进行讲解,主要是对docker技术进行学习。

2.1 docker架构

Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。其中,docker客户端我们一般就是直接通过命令操作,通过docker命令在宿主机进行容器、镜像等一系列操作。而docker服务器以linux后台的方式运行,执行我们操作的命令,例如容器的创建、运行,打镜像等操作。

2.2 docker学习核心

主要是以下3点,镜像、容器和仓库。

  • 仓库Registry
    Registry 是存放 Docker 镜像的仓库,Registry 分私有和公有两种。 Docker Hub(https://hub.docker.com/) 是默认的 Registry,由 Docker 公司维护,上面有数以万计的镜像,用户可以自由下载和使用。当然,我们也可以搭建自己的私有仓库。
  • 镜像image
    镜像就是我们创建容器的一系列操作的集合,通过这个镜像创建容器。我们一般写一个Dockerfile文件构建镜像。这里镜像就和我们的程序安装包类似,安装后就可以运行程序了。
  • 容器container
    容器就是镜像运行后的实例,类似于安装包安装后的程序,可以运行和退出。

2.3 docker安装

“工欲善其事,必先利其器”,在正式学习之前,先安装docker,这里笔者是在centos环境下进行操作,其他环境下各位大佬自行度娘哈。
安装docker

sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum list docker-ce --showduplicates | sort -r

可根据上述显示版本自行安装,本人是默认
sudo yum install docker-ce
docker version
sudo systemctl start docker

因为一般docker操作时都需要root用户权限,这里建议把当前用户加入docker用户组

# 添加 docker 用户组
groupadd docker
# 把需要执行的 docker 用户添加进该组,这里是 eggsy
gpasswd -a eggsy docker
# 重启 docker
systemctl restart docker

如果普通用户执行docker命令,如果提示get …… dial unix /var/run/docker.sock权限不够,则修改/var/run/docker.sock权限 使用root用户执行如下命令,即可

sudo chmod a+rw /var/run/docker.sock
# docker服务开机自启动
systemctl enable docker

删除docker

yum list installed|grep docker
sudo yum -y remove docker-ce.x86_64 docker-ce-cli.x86_64
sudo rm -rf /var/lib/docker

菜鸟系列docker——docker基本概念(1)的更多相关文章

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

    Fabric 基本概念 1.区块链介绍 区块链之所以引来关注是因为比特币开源项目,尤其是比特币价值的飙升,让大家开始关注数字货币以及相关技术.那么区块链究竟是什么? 1.1 区块链定义 狭义上,区块链 ...

  2. Docker系列(一)Docker概述,核心概念讲解,安装部署

    部分内容参考链接: Docker实战总结(非常全面,建议收藏) 一. Docker概述 Docker是一个开源的应用容器引擎(基于Go语言开发),让开发者可以打包他们的应用以及依赖包到一个可移植的容器 ...

  3. 菜鸟系列docker——docker镜像下(5)

    1. docker镜像构建 该章节主要介绍2种构建docker镜像的方式.当然,当前基本上需要的基础镜像都有,直接使用即可.例如数据库.中间件之类的,只需要拿来使用即可,但是依然存在需要开发者构建镜像 ...

  4. 菜鸟系列docker——docker镜像中(4)

    docker镜像命令 该章节主要介绍docker image相关命令实践操作,建议都一起跑一边 1. docker images 列举本机docker镜像 [centos@jiliguo docker ...

  5. 菜鸟系列docker——docker镜像上(3)

    1. 镜像image 镜像和容器的关系就和安装包和程序的关系一样,有了镜像才可以启动容器,容器是镜像的一个运行实例. 1.1 镜像的结构 通过第二节仓库,可能很多看官已经查看到镜像是分层的,接下来将对 ...

  6. Docker系列之Docker镜像(读书笔记)

    一.基本概念 Docker包括三个基本概念镜像.容器.仓库. Docker镜像:就是一个只读的模板.例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或其他应用程序.用 ...

  7. Docker系列09—Docker的系统资源限制及验证

    本文收录在容器技术学习系列文章总目录 1.限制容器的资源 默认情况下,容器没有资源限制,可以使用主机内核调度程序允许的尽可能多的给定资源.Docker提供了控制容器可以使用多少内存或CPU的方法,设置 ...

  8. docker的核心概念和安装

    里Dcoker的安装要求 我这里安装的是在vmware下的centos7 64位 并且通过模拟远程连接xshell 我在安装好之后就配置了静态ip,这里我就不多说怎么配置了 具体静态ip配置可以参考 ...

  9. Docker介绍基本概念(一)

    Docker介绍基本概念 1.什么是Docker? 说实话关于Docker是什么并太好说,下面我通过四点向你说明Docker到底是个什么东西. Docker是世界领先的软件容器平台. Docker使用 ...

  10. Docker的一些概念

    Docker的一些概念 2.1 什么是Docker? 说实话关于Docker是什么并太好说,下面我通过四点向你说明Docker到底是个什么东西. Docker 是世界领先的软件容器平台. Docker ...

随机推荐

  1. BFS —— 信息学一本通(1451:棋盘游戏)

    题目描述 在一个4*4的棋盘上有8个黑棋和8个白棋,当且仅当两个格子有公共边,这两个格子上的棋是相邻的.移动棋子的规则是交换相邻两个棋子.现在给出一个初始棋盘和一个最终棋盘,要求你找出一个最短的移动序 ...

  2. TimesTen中文乱码问题(其实是cmd.exe中文乱码)

    解决了导入数据的问题后,从导师那儿拷贝了一些样例数据,结果发现cmd.exe中文乱码(开始我以为是TimesTen无法显示中文).在网上搜了很多,因为我以为是TimesTen无法显示中文,所以都是搜的 ...

  3. Elasticsearch 滚动重启 必读

    关键词:elasticsearch , es , 滚动重启 , 禁止分片 由于之前es GC没有怎么调优,结果今天被大量scroll查询查挂了,GC 卡死了.然后为了先恢复给业务使用,也没什么其他办法 ...

  4. 使用Jacksum对文件夹和文件生成checksum

    Jacksum 是一个java开源工具, 用来 给单个文件生成checksum, 也可以给整个文件中所有文件生成checksum,生产的checksum 可以是MD系列,也可sha. 你可以参考​ 官 ...

  5. Spring 复习第一天

    一.Sping的优点 1.方便解耦,简化开发 ----Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理. 2.AOP编程的支持 ----Spring提供面向切面编程, ...

  6. 关于js的页面高度和滚动条高度还有元素高度

    window.innerHeight    这是浏览器里面内容的高度,直接就是值,不需要其它操作; window.pageYOffset 这是滚动条到浏览器顶端的距离; $(元素).offset(). ...

  7. 二分- Count on Canton

    题目: 代码: 是一个蛇形数列,把题目上的那组数倒过来看成一个正三角形. 第一行有1个数,1-2行有三个数,1-4行有6个数,1-4行有10个数,1-5行有15个数..... 现在要求第n个数是多少, ...

  8. 发现了学校教务处官网的两个BUG

    许久没有写博客了,感觉自己技术还差的好多-_-好像没啥好写的,之前学完了某易的WEB安全基础视频教程,自认对WEB安全入了门,忍不住就想拿学校教务处官网来练练手 教务处登录界面如图所示(为保护隐私,部 ...

  9. Java作业十三(2017-11-20)

    /*使用一位数组解决 1 1 2 3 5 8 13 数列问题 斐波纳契数列 Fibonacci*/ package cn.GM; public class array { public static ...

  10. LeetCode编程训练 - 滑动窗口(Sliding Window)

    滑动窗口基础 滑动窗口常用来解决求字符串子串问题,借助map和计数器,其能在O(n)时间复杂度求子串问题.滑动窗口和双指针(Two pointers)有些类似,可以理解为往同一个方向走的双指针.常用滑 ...