云计算(Docker)

Docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于开发应用、交付应用、运行应用等场景。

容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。Docker 允许用户将基础设施中的应用单独分割出来,形成更小的部分容器,从而提高软件交付速度。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版)和 EE(Enterprise Edition: 企业版),通常使用社区版就可以满足大多数业务场景。

Docker理念

Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

 Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

Docker 容器与虚拟机的区别 

  • Docker 容器与虚拟机很相似,但它们之间又有着很大的区别。
  • 虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。创建虚拟机时,会将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存,每个虚拟机都有独立的硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
  • 虚拟机会消耗大量系统资源和开销,尤其是当多个虚拟机在同一物理服务器上运行时,每个虚拟机都有自己的子操作系统,大量精力以及资源被用于虚拟化的部署和运行上。
  • 容器类似于虚拟机,只是容器不是完整的操作系统,容器通常只包含必要的操作系统包和应用程序,这就是它们轻量级的原因。

下载Docker 

 官网
• docker官网:http://www.docker.com
 仓库
• Docker Hub官网: https://hub.docker.com 

Docker安装

前提说明

CentOS Docker 安装

前提条件
目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上,要求系统为64位、Linux系统内核版本为 3.8以上,这里选用Centos7.x 

查看自己的内核
uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。 

 

cat /etc/redhat-release
uname -r
安装步骤

CentOS7安装Docker
Install Docker Engine on CentOS | Docker Docs

确定你是CentOS7及以上版本
cat /etc/redhat-release

卸载旧版本

yum安装gcc相关

CentOS7能上外网

yum -y install gcc
yum -y install gcc-c++
安装需要的软件包

执行命令

yum install -y yum-utils
设置stable镜像仓库

推荐

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
更新yum软件包索引
yum makecache fast
安装DOCKER CE 
yum -y install docker-ce docker-ce-cli containerd.io
启动docker 
systemctl start docker

测试 

docker version

 

docker run hello-world

 

卸载

 • systemctl stop docker
• yum remove docker-ce docker-ce-cli containerd.io
• rm -rf /var/lib/docker
• rm -rf /var/lib/containerd

阿里云镜像加速

开放云原生应用-云原生(Cloud Native)-云原生介绍 - 阿里云
步骤:
注册一个属于自己的阿里云账户(可复用淘宝账号)

获得加速器地址连接
登陆阿里云开发者平台
选择容器镜像服务

 粘贴脚本直接执行
直接粘

 

或者分步骤都行

mkdir -p /etc/docker
vim  /etc/docker/daemon.json
  #阿里云
{
  "registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"]
}

激活配置文件 重启服务器 

systemctl daemon-reload
systemctl restart docker

测试 

docker run hello-world

Docker常用命令

帮助启动类命令
启动docker: systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态: systemctl status docker
开机启动: systemctl enable docker
查看docker概要信息: docker info
查看docker总体帮助文档: docker --help
查看docker命令帮助文档: docker 具体命令 --help
镜像命令 
docker images

 

各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签版本号

IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小 

同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像 

• OPTIONS说明:
• -a :列出本地所有的镜像(含历史映像层)
• -q :只显示镜像ID。 

查找镜像 
docker search [OPTIONS] 镜像名字
OPTIONS说明:
--limit : 只列出N个镜像,默认25个
docker search --limit 5 redis
docker pull 某个XXX镜像名字
下载镜像 
·docker pull 镜像名字[:TAG]
·docker pull 镜像名字
·没有TAG就是最新版
·等价于
·docker pull 镜像名字:latest
docker pull ubuntu

删除镜像 
docker rmi 某个XXX镜像名字ID
·docker rmi  -f 镜像ID
·删除多个
·docker rmi -f 镜像名1:TAG 镜像名2:TAG
·删除全部
docker rmi -f $(docker images -qa)

 

容器命令

#使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

docker run -it centos /bin/bash 

i: 交互式操作。
-t: 终端。
centos : centos 镜像。

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是/bin/bash。
要退出终端,直接输入 exit: 

-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。 docker ps -n 1

-q :静默模式,只显示容器编号。
·退出容器 

关系 指向 进入正在运行的容器并以命令行交互
·两种退出方式
exit
run进去容器,exit退出,容器停止

ctrl+p+q
run进去容器,ctrl+p+q退出,容器不停止
·启动已停止运行的容器
·docker start 容器ID或者容器名

·重启容器
·docker restart 容器ID或者容器名
·停止容器
·docker stop 容器ID或者容器名

·强制停止容器
·docker kill 容器ID或容器名
·删除已停止的容器
·docker rm 容器ID

·一次性删除多个容器实例 

·docker rm -f $(docker ps -a -q)
·docker ps -a -q | xargs docker rm

重要
·有镜像才能创建容器,这是根本前提(下载一个Redis6.0.8镜像演示)
·启动守护式容器(后台服务器)

关系 前后对比 - 指向 启动交互式容器(前台命令行)
·在大部分的场景下,我们希望 docker 的服务是在后台运行的, 我们可以过 -d 指定容器的后台运行模式。
·docker run -d 容器名 

使用镜像centos:latest以后台模式启动一个容器 

docker run -d centos

发布阿里云

Docker镜像commit操作案例

·docker commit提交容器副本使之成为一个新的镜像
·docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
·案例演示ubuntu安装vim

·从Hub上下载ubuntu镜像到本地并成功运行
·原始的默认Ubuntu镜像是不带着vim命令的
·外网连通的情况下,安装vim 

docker容器内执行上述两条命令: 

apt-get update
apt-get -y install vim

·启动我们的新镜像并和原来的对比

1 官网是默认下载的Ubuntu没有vim命令
2 我们自己commit构建的镜像,新增加了vim功能,可以成功使用。

本地镜像发布到阿里云
将本地镜像推送到阿里云

·本地镜像素材原型

·阿里云开发者平台
·https://promotion.aliyun.com

·点击个人实例

 

·选择镜像仓库

 

·进入管理界面获得脚本 

 ·将镜像推送到阿里云
·将镜像推送到阿里云registry
·管理界面脚本

 ·脚本实例

·设置访问凭证,输入三行命令

 

将阿里云上的镜像下载到本地

·将本地上传的镜像删除

docker rmi -f 0940de0a64e8

 

·从Registry中拉取镜像

·查看拉取的镜像 

启动容器:docker run -it  0940de0a64e8 /bin/bash

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/155961.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年中国涂料树脂需求量、市场规模及行业竞争现状分析[图]

涂料用树脂是涂料的主要原材料,是涂料的主要成膜物,且了为涂料成品提供耐醇、耐磨、耐高温、耐高湿、减少涂料在涂装完成后的损耗、保持涂装后外观以及性状的稳定性等功能。 根据生产产品的性状不同,其下游产品,即涂料成品广泛应用…

锐捷EG易网关login.php以及其后台cli.php/branch_passw.php RCE漏洞复现 [附POC]

文章目录 锐捷EG易网关login.php以及其后台cli.php/branch_passw.php远程代码执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 锐捷EG易网关login.php以及其后台cli.php/branch_passw.php远程代码执行漏洞复…

电脑集中管理软件有哪些?电脑集中管控怎么做

电脑集中管理软件有哪些?电脑集中管控怎么做 电脑集中管理软件是指通过一种软件或系统,对多台电脑进行集中管理和控制的工具。这种软件通常具备远程控制、软硬件监控、自动部署等功能。可以方便企业或组织统一管理电脑资源,提高工作效率。今…

java“贪吃蛇”小游戏

基于java实现贪吃蛇小游戏,主要通过绘制不同的图片并以一定速度一帧一帧地在窗体上进行展示。 我是在javaSwing项目下创建了一个包 名字叫做:Snakes包 包下有一个启动类和一个设置代码的主界面两个类 代码主界面: 代码主界面主要讲解的是 …

linux关于cmake,makefile和gdb的使用

c文件的编译 安装环境(centos 7) 检查命令是否齐全 gcc --version g --version gdb–version 安装命令 yum -y install gcc-c安装g命令(用于编译c/c文件) yum -y install gcc安装gcc命令(用于编译c文件) 每个都出现版本号,证明…

Java-接口和抽象类

本章重点:1. 抽象类 2. 接口 3.Object类 1. 抽象类 1.1 抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一…

计算机毕业设计项目选题推荐(免费领源码)java+mysql二手校园交易平台67613

目录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2 二手校园交易平台系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 …

滚雪球学Java(09-2):Java中的关系运算符,你真的掌握了吗?

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

3.6 Windows驱动开发:内核进程汇编与反汇编

在笔者上一篇文章《内核MDL读写进程内存》简单介绍了如何通过MDL映射的方式实现进程读写操作,本章将通过如上案例实现远程进程反汇编功能,此类功能也是ARK工具中最常见的功能之一,通常此类功能的实现分为两部分,内核部分只负责读写…

C语言每日一题(31)相交链表

力扣160.相交链表 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意…

主办方:上海视频媒体,多样式多渠道跨屏传播

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 一,邀请视频媒体参加活动发布会,好处多多,首先现场气氛会很热烈,主办方会很有面子,视频媒体不管是电视台还是视频网站&#xf…

【自留地】前端 - uniapp - Vue - React - Flutter

uniapp uniapp自用速查表 - 我的常用组件 uniapp自用速查表 - 我的常用组件_uniapp static/customicons.css-CSDN博客文章浏览阅读1.8k次。uniapp项目登录退出、全局变量与状态、本地存储、Tabbar标签栏、顶部导航栏、下拉刷新、触底刷新、Ajax交互、内置组件样式修改、自定义…

聚观早报 |联想集团Q2财季业绩;小鹏汽车Q3营收

【聚观365】11月17日消息 联想集团Q2财季业绩 小鹏汽车Q3营收 微软发布两款自研AI芯片 FAA批准SpaceX再次发射星际飞船 2023 OPPO开发者大会 联想集团Q2财季业绩 全球数字经济领导企业联想集团公布截至2023年9月30日的2023/24财年第二财季业绩:整体营收达到10…

C++基础从0到1入门编程(一)

系统学习C 方便自己日后复习,错误的地方希望积极指正 参考视频:黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难 1 第一个C程序-HelloWorld 编写一个C程序分为四个步骤: (1)创建项目 (2&#xff…

深度学习入门(第四天)——递归神经网络与词向量原理解读

一、RNN网络架构解读 常规神经网络并不能考虑时间序列的特征(比如前天昨天今天或者带有前后关联的特征),现在每个特征都是独立考虑的,那么如果有这样的特征,网络应该怎么学呢 而递归递归网络hidden这里的转回箭头&…

全球地表水数据集JRC Global Surface Water Mapping Layers, v1.2数据

简介: 全球地表水覆盖(Global Surface Water)是利用1984至2019年获取的landsat5、landsat7和landsat8的卫星影像,生成分辨率为30米的一套全球地表水覆盖的地图集。用户可以在全球尺度上按地区回溯某个时间上地表水分的变化情况。…

MySQL内部组件与日志详解

MySQL的内部组件结构 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)&am…

Android开发APP显示头部Bar

Android开发显示头部Bar 需求&#xff1a; 显示如下图&#xff1a; 显示头部Bar&#xff0c;颜色也能自定义。 解决方案 这个修改是在如下三个文件里进行修改&#xff1a; 按顺序修改&#xff1a; themes.xml(night): <resources xmlns:tools"http://schemas.andr…

21 - 深入JVM即时编译器JIT,优化Java编译

说到编译&#xff0c;我猜你一定会想到 .java 文件被编译成 .class 文件的过程&#xff0c;这个编译我们一般称为前端编译。Java 的编译和运行过程非常复杂&#xff0c;除了前端编译&#xff0c;还有运行时编译。由于机器无法直接运行 Java 生成的字节码&#xff0c;所以在运行…