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

转载于:https://www.cnblogs.com/jiliguo/p/10740687.html

菜鸟系列docker——docker基本概念(1)相关推荐

  1. Docker与Kubernetes系列(一): Docker的基本概念

    这段时间工作中用到了Docker以及Kubernetes(简称K8S),现在整理下我学习Docker以及K8S过程中看的一些比较好的资料,方便自己回顾,也希望能给容器小白一些帮助.给自己定一个小目标, ...

  2. Docker系列 七. Docker 安装Jenkins

    Docker系列 七. Docker 安装Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集 ...

  3. Docker系列 四.Docker部署SpringBoot

    四.Docker部署SpringBoot 环境&工具: 阿里云轻量级服务器.CentOS 7系统.FinalShell(其他连接客户端也可以).IDEA 1. 创建springboot项目 这 ...

  4. 最佳实践系列丨Docker EE 服务发现参考架构(二)

    出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一.三.五晚6点10分 与您不见不散 服务发现对服务进行注册并发布其连接信息,以使其他服务了解如何连接到服务.随着应用向微服务和面向 ...

  5. docker tag 删除images_深入浅出 Docker (二) —— Docker的基本概念和架构原理

    1. Docker 的基本概念 Docker 有三个基本概念: 镜像(Image) 容器(Container) 仓库(Repository) 1.1 镜像(Image) 操作系统分为内核和用户空间.对 ...

  6. docker卸载 windows版本_DevOps系列 006 - Docker安装

    这是DevOps系列的第六节,我们开始安装Docker Debian 上安装 可以基于最新debian10的发行版,我现在还用着debian9,不过随后,我会发出Windows / macOs / U ...

  7. Docker系列五~docker安装php-fpm

    Docker系列五 docker安装php-fpm 访问PHP镜像库地址: https://hub.docker.com/_/php?tab=tags 选择合适的版本 php-fpm镜像主要是提供ph ...

  8. Docker系列四~docker安装mysql

    Docker系列四 docker安装mysql 搜索mysql版本 [root@localhost conf.d]# docker search mysql INDEX NAME DESCRIPTIO ...

  9. Docker系列三~docker安装nginx

    Docker系列三 docker安装nginx 搜索nginx版本 docker search nginx 拉取nginx最新版本镜像 docker pull nginx:latest 查看本地镜像 ...

  10. Docker系列一 ~docker的安装

    Docker系列一 docker安装 依照centos为例,Docker 官方建议要 CentOS7.0 及以上系统版本,在运行CentOS 6.5及以后版本时,需要内核版本>=2.6.32-4 ...

最新文章

  1. quartusII中功能仿真和时序仿真的分析
  2. 八 web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用
  3. 物理光学10 相干光与相干性
  4. JAVA 泛型与反射
  5. mui 解决弹出图片问题
  6. poj1201Intervals(差分约束)
  7. LiveVideoStackCon讲师热身分享 ( 十三 ) —— Intel QSV技术在FFmpeg中的实现与使用
  8. jQuery---操作类名
  9. java十进制转十六进制
  10. 6s电路图纸 iphone_(分享)iphone6s原理图、点位图(维修必备)
  11. 清除浮动-父级添加overflow(HTML、CSS)
  12. Hover.css:一组超实用的 CSS3 悬停效果和动画
  13. Android第九天
  14. quartus仿真34:74161构成长度为10的序列发生器
  15. 超级简单的纯js 象棋,看一遍你也会写
  16. matlab仿真step模块讲解,Simulink仿真教程(最好)
  17. ethool工具之TSO、UFO、GSO、LRO、GRO和RSS介绍
  18. 完善:HTML5表单新特征简介与举例——张鑫旭
  19. 2022年Spark基础学习笔记
  20. 安装chrome扩展插件.Crx文件时,总提示程序包无效:CRX_HEADER_INVALID

热门文章

  1. js的concat方法的使用
  2. 使用Xftp连接树莓派并传输文件
  3. Ubuntu vi文本编辑器
  4. android+notepad教程,Android平台应用开发实例:Notepad
  5. 【SSM框架系列】Spring-MVC的组件解析
  6. Spring Boot 2 快速教程:WebFlux Restful CRUD 实践(三)
  7. How to expand Azure VM OS Disk
  8. [环境]Mac Homebrew自动安装
  9. 一个好玩的 屏蔽别人审查元素F12 右键及其他复制粘贴等
  10. [转载 整理]C语言链表实例