Docker 系列一(概念原理和安装)

一、概念原理

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。—— 百度百科

之前一直有一个误区,老听人说 Docker 是一个容器,应用程序打包好镜像,然后在这个容器中运行,以此达到 "一次封装,处处运行"(Build,Ship and Run Any App,Anywhere)的目的。其实不然,Docker 只是一个应用程序引擎(引擎的基础是Linux自带的容器(Linux Containers,LXC)技术),然后每一个进程都是一个容器 —— 运行于 Docker引擎上的容器。

 传统的虚拟机技术和容器技术的区别?

传统虚拟机技术是虚拟出一套硬件后(内存分一点,磁盘分一点),在宿主上运行一个完整操作系统,在该系统上再运行所需要的应用进程;而容器内没有自己的内核,而且也没有进行硬件虚拟,应用进程直接运行于宿主的内核,而且进程和进程之间是相隔离的,是一个操作系统级别的虚拟化技术。

Docker 的优势:

1、更高效的利用系统资源(不需要进行硬件虚拟以及运行完整操作系统等额外开销,一个相同配置的主机,往往可以运行更多数量的应用。单机支持上千个容器)
2、更快速的启动时间
3、一致的运行环境
4、持续交付和部署
5、更轻松的迁移
6、更轻松的维护和扩展

Docker 包括三个基本概念:

镜像:是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等) 。镜像不包含任何动态数据,其内容在构建之后也不会被改变,任何用户程序都可以成为镜像的一部分。

镜像=操作系统+软件运行环境+用户程序。

容器:镜像和容器的关系,就像是面向对象程序设计中类和实例的关系,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立命名空间。容器内的进程是运行在一个隔离的环境中,使用起来,就好像是在一个独立于宿主的系统下操作一样。

每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,容器存储层的的生命周期和容器一样,容器消亡时,容器存储层也随之消亡。按照 Docker 的最佳实践,容器不应该向存储层写入任何数据,容器存储层要保持无状态变化。所有的文件写入操作,都应该使用 数据卷(Volume) 、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储) 发生读写,其性能和稳定性更高。

Docker Register:一个集中的存储、分发镜像的服务,一个Docker Register 中可以包含多个仓库(打包好的软件镜像);每个仓库可以包含多个标签(一个软件的多个版本镜像);

tips:官方的镜像库 https://hub.docker.com/

国内阿里云的镜像库 https://cr.console.aliyun.com/

二、安装

下面仅介绍 CentOS 安装 Docker CE,支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。

1、内核版本

2、系统版本

3、使用以下命令卸载旧版本的 Docker

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

4、安装依赖包并添加国内源

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 
$ sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

5、安装 Docker CE

$ sudo yum makecache fast
$ sudo yum -y install docker-ce

6、启动 Docker

$ sudo systemctl enable docker
$ sudo systemctl start docker

7、建立 docker 用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。完成前面的步骤,会自动建立 docker 用户组。

建立 docker 用户组:

$ sudo groupadd docker

添加用户到 docker 用户组:

$ sudo usermod -aG docker $USER

8、测试是否安装成功

退出当前终端并重新登陆(必须),输入如下命令验证是否成功:

9、安装镜像加速

修改 /etc/docker/daemon.json 文件,写入以下内容:

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

重启服务:

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

参考资料:《Docker — 从入门到实践》

原文地址:https://www.cnblogs.com/jmcui/p/9313932.html

时间: 2024-10-11 19:37:04

Docker 系列一(概念原理和安装)的相关文章

Docker系列之实战:3.安装MariaDB

环境 [[email protected] ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) [[email protected] ~]# docker -v Docker version 18.09.1, build 4c52b90 第一步:搜索和拉取官方MariaDB镜像 https://hub.docker.com/_/mariadb 基于ubuntu:trusty ### 搜索镜像 docker search

学习docker系列-在centos6.5中安装docker

1.要求 centos6.5中需要64位 centos6.5的linux内核需要3.x(centos的内核是2.6) 2.查看当前系统的位数和版本 [[email protected] jacky]# uname -r 2.6.32-431.el6.x86_64 [[email protected] jacky]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m 说明当前版本是centos6.5 64位系统 3. 安装yu

docker的核心概念和安装

docker的安装和配置 环境介绍: 操作系统:64bit CentOS7 docker版本:1.11.1(最新版本) 版本新功能:https://github.com/docker/docker/blob/master/CHANGELOG.md 安装步骤 安装准备: 要求: 内核版本最低为3.10 查看当前内核版本: uname –r 通过yum方式安装docker: 第一步:更新yum源: sudo yum update 第二步:增加docker的yum源: 输入命令:sudo tee /e

Docker系列:第一讲.Docker简介与安装

什么是 Docker? Docker的英文翻译是"搬运工"的意思,他搬运的东西就是我们常说的集装箱Container,Container 里面装的是任意类型的 App,我们的开发人员可以通过 Docker 将App 变成一种标准化的.可移植的.自管理的组件,我们可以在任何主流的操作系统中开发.调试和运行. Docker和虚拟机有什么区别? 从概念上来看 Docker 和我们传统的虚拟机比较类似,只是更加轻量级,更加方便使,Docker 和虚拟机最主要的区别有一下几点: 虚拟化技术依赖的

Docker入门一概念和安装

Docker入门一概念和安装 LinuxDocker Docker概念 Docker 是一个基于 LXC 技术构建的容器引擎,基于 GO 语言开发,遵循 Apache2.0 协议开源.Docker 的发展得益于为使用者提供了更好的容器操作接口.包括一系列的容器,镜像,网络等管理工具,可以让用户简单的创建和使用容器. 核心理念: Build once,Run anywhere. 核心关键词: namespace, cgroups, union fs Docker架构 Docker为C/S体系架构,

Docker系列-第八篇Docker常用安装

一.总体步骤 1.搜索镜像 2.拉取镜像 3.查看镜像 4.启动镜像 5.停止容器 6.移除容器 二.安装Tomcat 2.1 docker push方式安装tomcat https://hub.docker.com/_/tomcat docker hub上每个镜像怎么使用,都有对应的说明,这个说明对于每个镜像的安装和使用都很有帮助 2.1.1.docker hub上面查找tomcat镜像 2.1.2.从docker hub上拉取tomcat镜像到本地 2.1.3.docker images查看

Docker系列之CentOS7安装Docker(一)

0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 一.瞎扯淡(只讲有用的) 感兴趣的同学可以上网搜索一下docker具体的介绍.我这边主要介绍偏实战的内容,不喜勿喷,有问题也请指出. 官方给出的介绍:docker就是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任务流行的linux机器上,实现虚拟化. 我想说的是docker 就是 一个车的发动机引擎,引擎来提供动力,提供车上各个依赖引擎的组件使之运行,那么这里的组件就是容器.讲的

Docker系列一:Docker的介绍和安装

Docker介绍 Docker是指容器化技术,用于支持创建和实验Linux Container.借助Docker,你可以将容器当做重量轻.模块化的虚拟机来使用,同时,你还将获得高度的灵活性,从而实现对容器的高效创建.部署和复制,并能将其从一个环境顺利迁移至另外一个环境. Docker官方网站:http://www.docker.com Github Docker 源码:https://github.com/docker/docker 基础特性: 基于C/S架构应用程序 模块化 层与镜像版本控制

Flux7 Docker 系列教程(一):Docker 简介

本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第一篇 Part 1: An Introduction.  该系列所有文章将参考其他学习资料翻译,也会加入自己的学习作为部分注解.如有错误,欢迎指正. Docker,一种新的容器化技术,因为轻量级和便携化而受到广泛关注.Docker 和 Java 一样,号称"一次构建,一次配置,即可到处运行"(build once, configure once and run anywhere).本篇文