docker详解介绍+基础操作 (一)

devtools/2024/10/9 5:16:20/

话不多说,先上干货

配置方法

Ubuntu 14.04/16.04/18.04/20.04/22.04/24.04(使用 apt-get 进行安装)

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
# 删除 sudo apt purge docker-ce
# rm -rf /var/lib/docker

CentOS 7(使用 yum 进行安装)

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# 删除 yum -y remove docker-ce
# rm -rf /var/lib/docker

安装校验

root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:Version:      17.03.0-ceAPI version:  1.26Go version:   go1.7.5Git commit:   3a232c8Built:        Tue Feb 28 07:52:04 2017OS/Arch:      linux/amd64Server:Version:      17.03.0-ceAPI version:  1.26 (minimum version 1.12)Go version:   go1.7.5Git commit:   3a232c8Built:        Tue Feb 28 07:52:04 2017OS/Arch:      linux/amd64Experimental: false

1.docker介绍

docker(码头工人)是一个可以将应用程序及其依赖打包到几乎可以在任何服务器上运行的容器的工具。

container(容器/集装箱),很多docker(码头工人)将很多装有不同物品但却有标准尺寸的的集装箱装在到停靠的岸边大船,然后方便运输。

容器其实是一种沙盒技术。容器技术提高了硬件资源的利用率,业务快速横向扩容(秒级扩容),业务宕机自愈功能(配合kubernetes实现)

2.docker优点

1)快速部署:短时间内可以部署成千上万个应用,快速交付到线上

2)高效虚拟化:不需要额外hypervisor支持,基于linux内核实现应用虚拟化,大幅提高性能和效率

3)节省开支:提高服务器利用率,降低IT支出

4)简化配置:将运行环境打包保存至容器,即开即用

5)环境统一:将开发,测试,生产的运行环境标准化,减少环境不同的灵异事件

6)快速迁移和扩展:可实现跨平台运行在物理机,虚拟机,公有云环境,良好的兼容性可以方便的将应用从A平台迁移到B平台

7)更好的视线面向服务的架构,可以一个容器运营一个应用,充分实现分布式的应用模型,方便的横向扩容,符合开发中高内聚,低耦合的要求,减少不同服务间的相互影响

3.docker的缺点

1)多容器公用宿主机的内核,个应用之间隔离不如虚拟机彻底

2)由于宿主机之间的进程也是隔离的,需要进入容器查看和条数容器内进程等资源,变得比较困难和繁琐

3)如果容器内进程需要查看和调试,需要在每个容器内都需要安装相应的工具,专业造成了存储空间的重复浪费

4 docker核心技术

1)namespace

隔离类型功能系统调用参数内核版本
MNT提供磁盘挂载点和文件系统的隔离功能CLONE_NEWNS2.4.19
PID提供进程隔离功能CLONE_NEWPID2.6.24

IPC

提供进程间通信的隔离能力,包括信号量,消息对列和共享内存CLONE_NEWIPC2.6.19
NET提供网络隔离能力,包括网络设备,网络间,端口等CLONE_NEWNET2.6.29
UTS提供内核,主机名和域名隔离能力CLONE_NEWUTS2.6.19
USER提供用户隔离能力,包括用户和组CLONE_NEWUSER3.8

从内核版本可知,只支持centos7以上的系统(升级内核除外)

2)cgroups

cgroups最主要的作用就是限制一个进程组能够使用的资源上限,保罗CPU、内存、磁盘、网络带宽等。此外,还能够对进程进行优先级设置,资源的计量以及资源的控制(将进程挂起恢复等操作)

cgroups在内核层默认开启,较新内核支持的功能更多。

注:docker 或者kubernetes 尽量用户ubuntu,因为较新的软件有些不支持centos了,例如gitlab等

且开发也是优先基于ubuntu即debian系。


http://www.ppmy.cn/devtools/123208.html

相关文章

Go语言实现随机森林 (Random Forest)算法

在 Go 语言中实现随机森林(Random Forest)算法通常涉及以下几个步骤: 数据准备:将数据集分为训练集和测试集,确保数据格式适合算法使用。 决策树的构建:随机森林是由多个决策树构成的,首先需要…

大数据毕业设计选题推荐-白酒销售数据分析-Python数据可视化-Hive-Hadoop-Spark

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

昆虫分类与检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

昆虫分类与检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

需求8——通过一个小需求来体会AI如何帮助改bug

这篇文章,我们通过一个简单的例子来说明,平时在写需求的时候,我们可以在什么时候用AI来帮助我们写代码。 首先来看一下这个需求:系统中某个用户使用的时候出现了bug,通过手机建立临时任务报错,没有办法新增…

【VUE】会员管理(增删改查)

前端 router/index.js import { createRouter, createWebHistory } from vue-router import {userInfoStore} from "/stores/user.js";const router createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: /login,name: login,comp…

随笔(四)——代码优化

文章目录 前言1.原本代码2.新增逻辑3.优化逻辑 前言 原逻辑:后端data数据中返回数组,数组中有两个对象,一个是属性指标,一个是应用指标,根据这两个指标展示不同的多选框 1.原本代码 getIndicatorRange(indexReportLi…

系统架构设计师论文《论企业集成平台的理解与应用》精选试读

论文真题 企业集成平台(Enterprise Imtcgation Plaform,EIP)是支特企业信息集成的像环境,其主要功能是为企业中的数据、系统和应用等多种对象的协同行提供各种公共服务及运行时的支撑环境。企业集成平台能够根据业务模型的变化快速地进行信息系统的配置…

D27【 python 接口自动化学习】- python 基础之判断与循环

day27 判断和循环中常见错误 学习日期:20241004 学习目标:判断与循环﹣-38 避坑指南:判断和循环中的常见错误 学习笔记: 循环过程中改变遍历次数 遍历中修改列表导致误操作 循环嵌套中的缩进导致运行语句有差别 总结…