Docker—入门及Centos7安装

1、Docker入门

1.1、Docker是什么?

Docker是基于Go语言实现的云开源项目。
Docker的主要目标是“Build,Ship,and Run Any App,Anywhere”,也就是通过对应组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。
在这里插入图片描述
Linux容器技术的出现就解决了这样一个问题,而Docker就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的服务器上就可以一键部署好,大大简化了操作。

Docker解决了运行环境和配置问题的软件容器,方便做持续继承并有助于整体发布的容器虚拟化技术。

1.2、Docker和虚拟机对比

在这里插入图片描述
Docker和传统虚拟化方式的不同之处:

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需要的应用进程。
  • 容器内的应用直接运行与宿主的内核,容器内没有自己的内核也没有进行硬件虚拟,因此容器要比传统虚拟机更为轻便。
  • 每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。

1.3、Docker解决的问题

在这里插入图片描述
Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个模型运用到自己的设计中,唯一不同的是:集装箱运输货物,而Docker运输软件。

2.3、Docker的基本组成

  • 镜像(image)
    在这里插入图片描述

  • 容器(container)
    在这里插入图片描述

  • 仓库(repository)

    在这里插入图片描述
    小结:
    在这里插入图片描述

2、Docker平台架构

2.1、Docker平台架构简介

在这里插入图片描述

2.2、Docker工作原理

Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器,是一个运行时环境,就是我们前面说到的集装箱。
在这里插入图片描述

2.3、Docker整体架构及底层通信原理简介

在这里插入图片描述
在这里插入图片描述

3、安装Docker

3.1、下载Docker

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

3.2、CentOS上安装Docker

在这里插入图片描述

在这里插入图片描述
官方文档地址
在这里插入图片描述

1、确定你是Centos7及以上版本

[root@localhost ~] cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
[root@localhost ~] uname -r
3.10.0-862.el7.x86_64

2、卸载旧版本

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

3、yum安装gcc相关

1)确保Centos7能上外网
2)执行命令:yum -y install gcc
3)执行命令:yum -y install gcc c++

4、安装需要的软件包

sudo yum install -y yum-utils

5、设置stable镜像仓库

docker官方仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

国内连接不稳定,不建议使用,经常会因为连接超时等问题:
在这里插入图片描述

推荐使用国内的镜像仓库:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6、更新yum软件包索引

yum makecache fast

7、安装DockerR Engine

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

8、启动docker

sudo systemctl start docker

9、测试

查看docker版本:

deocker version

运行hello-world:

sudo docker run hello-world

10、卸载

在这里插入图片描述

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

3.3、阿里云镜像加速

3.3.1、获取云镜像加速链接

注册阿里云账号:https://www.aliyun.com/
在产品里面搜索“容器镜像服务”:
在这里插入图片描述
选择使用,就可以获取免费的镜像加速器链接:
在这里插入图片描述
当然也可以花钱购买。

3.3.2、配置镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://XXXXXX.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3.4、解析“hello-world”

在这里插入图片描述
在这里插入图片描述

4、底层原理

4.1、docker为何比虚拟机快?

(1)由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利率上docker将会在效率上有明显优势。
(2)docker利用的是宿主机的内核,而不需要加载操作系统OS内核
当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker环境搭建及其安装常用软件

centos安装docker Install Docker Engine on CentOS | Docker Docs 下载docker sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io…

JS如何上传视频后从视频截图到一张封面Cover?

文章目录 概要获取上传视频文件截图小结 概要 从上传视频文件中获取一张图片 获取上传视频文件截图 html片段&#xff0c;两个都是隐藏的 <!--自定义的上传视频标签--><input type"file" style"display: none" id"file" ref"uplo…

MongoDB本地部署并结合内网穿透实现公网访问本地数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 4. 结语 前言 MongoDB是一个基于分布式文件…

TCP 三次握手 四次挥手以及滑动窗口

TCP 三次握手 简介&#xff1a; TCP 是一种面向连接的单播协议&#xff0c;在发送数据前&#xff0c;通信双方必须在彼此间建立一条连接。所谓的 “ 连接” &#xff0c;其实是客户端和服务器的内存里保存的一份关于对方的信息&#xff0c;如 IP 地址、端口号等。 TCP 可以…

【前端基础--6】

对象 object // 定义一个obj来接收对象let obj {name: 咪咪,type: 布偶猫,like: [小鱼干, 猫条]}console.log(obj);// 取到obj里面name属性的值console.log(obj.name);// 使用大括号取值 括号内若不带引号&#xff0c;优先识别为变量console.log(obj[type]);// 通过等号进行…

【c语言】详解操作符(下)

前言&#xff1a; 在上文中&#xff0c;我们已经学习了 原码、反码、补码、移位 操作符、移位操作符、位操作符、逗号表达式、下标访问[ ]、函数调用&#xff08; &#xff09;&#xff0c;接下来我们将继续学习剩下的操作符。 1. 结构成员访问操作符 1.1 结构体成员的直接访…

台式电脑的ip地址在哪里找

在网络连接方面&#xff0c;IP地址是非常重要的信息&#xff0c;它是用于标识网络设备的唯一地址。对于台式电脑用户来说&#xff0c;了解自己设备的IP地址是非常有必要的&#xff0c;因为它可以帮助解决网络连接问题&#xff0c;进行远程访问和共享文件等功能。本文将指导读者…

深度学习知识

context阶段和generation阶段的不同 context阶段&#xff08;又称 Encoder&#xff09;主要对输入编码&#xff0c;产生 CacheKV(CacheKV 实际上记录的是 Transformer 中 Attention 模块中 Key 和 Value 的值&#xff09;&#xff0c;在计算完 logits 之后会接一个Sampling 采…

python脚本加密

在Python中&#xff0c;可以使用一些工具对脚本进行加密&#xff0c;以增加其安全性。以下是几种常用的加密方法&#xff1a; 使用PyInstaller或Py2exe将Python脚本转换为可执行文件&#xff1a; PyInstaller和Py2exe可以将Python脚本打包成一个独立的可执行文件。这样&#…

幻兽帕鲁服务器多少钱?4核16G支持32人在线吗?

4核16G服务器是幻兽帕鲁Palworld推荐的配置&#xff0c;阿里云和腾讯云均推出针对幻兽帕鲁的4核16G服务器&#xff0c;阿里云4核16G幻兽帕鲁专属服务器32元1个月、66元3个月&#xff0c;腾讯云4核16G14M服务器66元1个月、277元3个月、1584元一年。云服务器吧yunfuwuqiba.com分享…

7.OpenResty系列之LuaRestyRedisLibrary

1. 连接需授权的redis server {location /redis1 {content_by_lua_block {local redis require "resty.redis"local red redis:new()-- 1秒red:set_timeout(1000) local ok, err red:connect("127.0.0.1", 6379)if not ok thenngx.say("failed to…

vue笔记(一):部署

首 文档 安装 1、安装nodejs&#xff08;链接&#xff09;&#xff0c;18.0以上版本。 2、在想要创建项目的目录下执行命令 npm create vuelatest 按提示创建项目&#xff0c;其中vue router是实现路由功能&#xff0c;pinia实现组件之间共享数据。如果项目需要两个功能建…

前端大厂面试题探索编辑部——第一期

目录 简介 题目 单选题 题解 A选项的Content-Security-Policy http-equiv属性 content属性 B选项的CSRF 使用CSRF Token 验证Referer和Origin头 C选项的HTTP Only D选项的防止SQL注入 输入验证和转义 简介 这个是一个长系列&#xff0c;我会以题目为导向&#xff…

LeetCode-题目整理【12】:N皇后问题--回溯算法

注意点&#xff0c;语法&#xff1a; 一定要记得初始化内层数组的长度&#xff1a;board[i] make([]rune, n)&#xff0c;否则就会报出现越界的错 // 第1步&#xff0c;初始化二维数组&#xff0c;内层数组长度为0&#xff0c;外层为nboard :make([][]rune,n)for i:0;i<n;i…

使用virtualenv管理python环境

Windows配置virtualenv 安装 pip install virtualenv virtualenvwrapper virtualenvwrapper-win设置WORK_HOME环境变量 在系统path变量中添加虚拟环境目录&#xff1a;键WORKON_HOMEC:dev\Envs 修改windows环境下mkvirtualenv.bat文件&#xff0c;配置虚拟环境根目录地址 配…

python-自动化篇-运维-监控-简单实例-道出如何使⽤Python进⾏网络监控?

如何使⽤Python进⾏⽹络监控&#xff1f; 使⽤Python进⾏⽹络监控可以帮助实时监视⽹络设备、流量和服务的状态&#xff0c;以便及时识别和解决问题。 以下是⼀般步骤&#xff0c;说明如何使⽤Python进⾏⽹络监控&#xff1a; 选择监控⼯具和库&#xff1a;选择适合⽹络监控需…

蓝桥杯省赛无忧 课件49 DFS-剪枝

01 数字王国之军训排队 02 特殊的三角形 03 特殊的多边形

优雅的python(二)

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;c语言从基础到进阶 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于c语言的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x…

【docker】linux系统docker的安装及使用

一、docker应用的安装 1.1 安装方式 Docker的自动化安装&#xff0c;即使用提供的一键安装的脚本&#xff0c;进行安装。 官方的一键安装方式&#xff1a;curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 国内 daocloud一键安装命令&#xff1a;curl -s…

二刷代码随想录|Java版|回溯算法1|回溯基础理论+组合问题

理论 写链表之类的真的很痛苦&#xff0c;赶紧跳到回溯&#xff01;这次我想结合算法设计这本书&#xff0c;把java版写出来。放在第三部分吧。希望能够在研一完成这项工作&#xff01; 从一刷总结以下的几个要点&#xff1a; 回溯方法模板性非常强&#xff01;&#xff01;可…