Docker介绍、docker安装以及实现docker的远程管理
1.Docker介绍
1.Docker介绍
Docker 是⼀个开源的应用容器引擎,可以实现虚拟化,完全采用“沙盒”机制,容器之间不会存在任何接口。
Docker 通过 Linux Container(容器)技术将任意类型的应用进行包装,变成一种轻量级、标准化、可移植、自管理的组件。在包装应用的同时可连带该应用的依赖和环境一并进行打包,所以可以将这种“包”移植到任意环境去运行,省去兼容性的问题。
2.Docker架构
1. 用docker pull 命令从 hub.docker.com 官网上下载 images (镜像)。
2. 可以用docker save 命令将镜像保存到本地 tar文件,也可以用docker load 命令将本地ta文件导入镜像。
3. 可以用docker build 构建 Dockerfile 镜像。
4. 可以用docker run 和 docker create 将镜像运行成 container (容器),容器内可以安装所需要的 APP。
5. 可以用docker commit/export 将容器做成镜像反复的使用。
6. 可以将自己制作的镜像发布到 hub.docker.com 网站,需要注册账号。
3.Docker 核心概念
1. 镜像(images):一个面向 docker 容器引擎的只读模板,也是容器的基础,类似于 iso 镜像文件。
2. 容器(container):基于镜像所创建的虚拟实例,相当于一个简易的 Linux 环境,可启停,且多个容器之间互相隔离。
3. 仓库(Repository):集中存放 docker 镜像的位置,可使用docker pull 或 push 命令下载或上传到私有或公有仓库。
4. 仓库注册服务器(registry):存放仓库的地方,如果没有私有仓库,则使用公共仓库 docker hub。
4.Docker特性
1.文件系统隔离:每个进程容器运行在⼀个完全独立的根文件系统里。
2.资源隔离:实现不同的容器的资源配额和调度,cgroup。
3.网络隔离:每个进程容器运行在自己的网络空间,拥有虚拟接口和 IP 地址。
4.日志记录:Docker将收集到和记录的每个进程容器的标准流 (stdout/stderr/stdin),用于实时检索或者批量检索。
5.变更管理:容器文件系统的变更可以提交到新的镜像中,并可重复使用以创建更多的容器。
6.交互式shell:Docker可以分配一个虚拟终端并且关联到任何容器的标准输出上,例如运行一个一次性交互shell。
命令表
2.安装Docker
安装模块
[root@docker0 ~]# cat << EOF | tee /etc/modules-load.d/k8s.conf
> overlay
> br_netfilter
> EOF
overlay
br_netfilter
加载内核模块
[root@docker0 ~]# modprobe overlay
[root@docker0 ~]# modprobe br_netfilter
查看模块
[root@docker0 ~]# cat /etc/modules-load.d/
cat: /etc/modules-load.d/: 是一个目录
[root@docker0 ~]# cat /etc/modules-load.d/k8s.conf
overlay
br_netfilter
[root@docker0 ~]# cat << EOF | tee /etc/sysctl.d/k8s.conf
> net.bridge.bridge-nf-call-iptables = 1
> net.bridge.bridge-nf-call-ip6tables = 1
> net.ipv4.ip_forward = 1
> EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
运行
[root@docker0 ~]# sysctl --system
安装
[root@docker0 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
提高下载速度
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
ls /etc/yum.repos.d/
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
启动docker
[root@docker0 ~]# systemctl start docker
[root@docker0 ~]# docker images #里面空空如也
REPOSITORY TAG IMAGE ID CREATED SIZE
搜索一下tomcat
[root@docker0 ~]# docker search tomcat
overlay:是一种文件系统层叠技术,常用于容器化平台(比如 Docker)中。它允许将多个文件系统叠加在一起,从而创建一个统一可见的文件系统。通过加载 overlay 模块,可以在 Linux 系统中使用overlay 文件系统,并且它将提供一些额外的功能,比 如联合挂载、文件层叠等。
br_netfilter:Linux 内核中的提个模块,它提供了桥接设备(bridge device) 和网络过滤器(netfilter) 之间的集成。它允许在桥 接设备上使用网络过滤器功能,如防火墙规则、网络地址转换 (NAT) 等。通过加载 br_netfilter 模块,你可以在 Linux 系统中的桥接设备上应用网络过滤规则对网络流量进行管理和控制。
device-mapper-persistent-data:一个Linux内核模块,它为 Device Mapper设备提供持久存储功能。DMPD提供了一个用于存储映射关系的数据库,使得Device Mapper可以持久化存储映射数据,以便在系统重新启动后仍然可以恢复之前的映射关系。
lvm2:Linux系统下的逻辑卷管理工具,LVM 的升级版,它是对磁盘分区进行管理的一种机制,建立在硬盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性。
3.启动docker镜像
创建文档,设置加速器
[root@docker0 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
重启docker
[root@docker0 ~]# systemctl restart docker
[root@docker0 ~]# docker info
拉取centos镜像
[root@docker0 ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
查看镜像
[root@docker0 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 5d0da3dc9764 2 years ago 231MB
运行容器
[root@docker0 ~]# docker run -it --name=c0 centos:latest /bin/bash
[root@9ef531eeae6c /]#
当前运行的进程
当前位置和启动时间
查看版本
[root@9ef531eeae6c /]# cat /etc/redhat-release
CentOS Linux release 8.4.2105
配置阿里云的yum仓库
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache
安装http
yum -y install httpd
修改index.html文件
echo "docker_httpd_server" > /var/www/html/index.html
启动http服务
httpd -k start
宿主机访问
curl 容器IP地址:80 #ifconfig可获得
退出
exit
4.docker管理远程管理
1.关闭docker守护进程
2.修改dock daemon的进程文件
进入配置文件
[root@docker001 ns]# vim /usr/lib/systemd/system/docker.service
删除相关sock的文件
再次启动,发现有提示
3.加载配置文件
systemctl daemon-reload
systemctl start docker
4.重新开启docker守护进程
systemctl daemon-reload
systemctl start docker
5.添加配置文件对docker daemon 的配置
通过修改/etc/docker/daemo.json文件对docker守护进程进行配置,默认情况下没有daemon.json文件,在添加daemon之前,先修改。
修改
重启
6.实现远程连接
相关文章:

Docker介绍、docker安装以及实现docker的远程管理
1.Docker介绍 1.Docker介绍 Docker 是⼀个开源的应用容器引擎,可以实现虚拟化,完全采用“沙盒”机制,容器之间不会存在任何接口。 Docker 通过 Linux Container(容器)技术将任意类型的应用进行包装,变成一…...

【UE5】基于摄像机距离逐渐剔除角色
效果 步骤 1. 新建一个工程,在内容浏览器中添加第三人称游戏内容包 2. 找到第三人称角色的材质实例“MI_Quinn_01”并打开 找到材质实例的父项材质“M_Mannequin” 打开材质“M_Mannequin” 在材质图表中添加如下节点 此时运行效果如文章开头所示。 参考视频&#…...

LabVIEW优化内存使用
在LabVIEW中,优化内存使用的关键在于理解LabVIEW的内存管理机制并采用一些最佳实践。以下是一些可能帮助减少内存占用的方法: 1. 减少数据副本的生成 避免不必要的数据复制:每当你在程序中传递数组或子数组时,LabVIEW可能会创建副…...

多进程和多线程基础概念LINUX
进程和程序的区别 程序是静态的,它是保存在磁盘上的指令的有序集合,没有任何执行的概念进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和销毁的整个过程 并行:在 cpu 多核的支持下,实现物…...
React Native的Android端fetch的网络请求FormData请求错误:TypeError:Network request failed
// formdataconst formData new FormData();formData.append("code", appUserCode);formData.append("wallet", appName);// const formDataStr code appUserCode &wallet appName;// 参数形式//const _body code${appUserCode}&wallet${app…...

python之matplotlib (1 介绍及基本用法)
介绍 matplotlib是Python中的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域,是 Python 中最著名的绘图库之一。 同样matplotlib的安…...
ROS2常用指令
ROS2(Robot Operating System 2)是一个用于机器人软件开发的灵活框架,它提供了一套丰富的工具和库来支持机器人的开发、模拟、部署和测试。ROS2的常用指令可以大致分为几个类别,包括功能包管理、节点管理、话题管理、服务管理、动…...

SQL注入(原理、分类、union、POST注入)
目录 【学习目标、重难点知识】 【学习目标】 【重难点知识】 SQL注入简介 SQL注入原理 SQL注入类型 MySQL与SQL注入的相关知识 information_schema 数据库的结构 数据库查询语句 limit的用法 需要记住的几个函数 注释符号 SQL注入探测方法 SQL注入漏洞攻击流程…...
【勒索病毒应急响应流程】
概述 不同应急事件响应方式不同,建议大家阅读以下案例,解决自己当前的困扰,当然也可以根据自己的经验对文章进行补充和修正,欢迎在评论区留言。 案例1 事件概述 某安服团队接到某政府部门的远程应急响应求助,要求对被勒索服务器进行排查分析并溯源。 排查溯源 1、应…...

C ++初阶:C++入门级知识点
目录 🌞0.前言 🚈1.C输入输出 🚈2.缺省参数 🚝2.1全缺省参数 🚝2.2半缺省参数 🚈3.函数重载 🚝3.1参数类型不同 🚝 3.2参数个数不同 🚝3.3参数类型顺序不同 …...
php中如何高效地实现一个函数以判断给定日期是否位于多个预定义的时间范围内,同时确保代码的可读性、可维护性和性能优化
背景信息: 我有一个包含多个时间范围的数组,每个时间范围由起始日期和结束日期组成(目前以字符串形式给出),例如: $ranges [[start > 2023-01-01, end > 2023-03-31],[start > 2023-06-01, end …...
存在重复元素 II(LeetCode)
题目 给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在,返回 true ;否则,返回 false 。 解题 """ 时间复杂度…...

认知杂谈21
今天分享 有人说的一段争议性的话 I I 自在之“坏”:真实自我的绽放 在社交场合中,听到“他不是个好人”这句话可能会让人惊讶,但其实被贴上“坏人”标签的人往往敢于跳出规则框架,展现真实自我。他们不做表面和谐的牺牲品&am…...
2024前端面试题-工程化篇
1.webpack(模块打包工具)五大核心 Entry入口,Output定义输出路径和命名规则,Loader模块转换器,Plugin扩展插件,Mode模式(Webpack使用相应模式的配置) 2.谈一谈你对Loader和Plugin的…...

【附源码】Python :PYQT界面点击按钮随机变色
系列文章目录 Python 界面学习:PYQT界面点击按钮随机变色 文章目录 系列文章目录一、项目需求二、源代码三、代码分析3.1 导入模块:3.2 定义App类:3.3 构造函数:3.4 初始化用户界面:3.5 设置窗口属性:3.6 …...

[Qt][QSS][下]详细讲解
目录 1.样式属性0.前言1.盒模型(Box Model) 2.常用控件样式属性1.按钮2.复选框3.单选框4.输入框5.列表6.菜单栏7.注意 1.样式属性 0.前言 QSS中的样式属性⾮常多,不需要都记住,核⼼原则是⽤到了就去查 ⼤部分的属性和CSS是⾮常相似的 QSS中有些属性&am…...
RAII在实现webserver这个项目中是怎么体现的?起到了什么作用
在WebServer项目中,RAII(Resource Acquisition Is Initialization,即资源获取即初始化)是一种重要的资源管理策略,它主要通过智能指针、锁、文件句柄等对象的生命周期来管理资源的分配和释放。RAII在WebServer项目中的…...

QT下显示自己派生的QWidget界面(提升为)
在实际开发过程中,我们可能有这样的需求,自己绘制一个仪表盘界面,然后将其贴到主界面上方。 这个时候就会用到“提升为”这个功能,该功能目的是将QWidget提升为自己派生的QWdiget子类,具体操作为,在主界面…...
jvm监控工具一览
下面是对 BTrace、JAD、JMAP、JSTAT、JSTACK、JINFO 以及 MARK 工具的比较表: 工具/属性功能适用场景使用难度是否侵入式是否需要重启 JVMBTrace动态跟踪和监控 Java 应用程序性能分析、故障排查、日志收集、安全监控中等无侵入式否JAD反编译 Java 字节码文件&…...

使用 Visual Studio 编辑器作为 DailyNotes 的 markdown 编辑器
DailyNotes 是我使用过的最优秀的日常笔记管理工具,为它配置一个好的 markdown 编辑器,可以大幅提升效率。 除了使用 Typora 作为 markdown 编辑器,Visual Studio Code 也是一个非常不错的选择,令人惊喜的是,它也支持…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)
注:文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件:STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...
Docker、Wsl 打包迁移环境
电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.2609…...