docker 学习总结

docker 概念 -云计算的基石

docker的一个软件:

开源

docker基本组成

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似
maven)
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

docker 原理介绍;

Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作

只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

docker 是内核级别的虚拟机容器技术;

解决什么问题?干什么?

容器的优缺点;

https://www.docker.com
docker官方文档地址:
https://docs.docker.com/

分布式

云部署

容器

镜像

仓库

docker 容器。

  • Docker是一种先进的隔离方式,类似于虚拟机,但是相比虚拟机启动和停止速度更快(小于1s),和宿主系统共用内核,不需要系统组件,占用内存空间更少,更加灵活。
  • Docker的思想来自于集装箱,云计算就好比大货轮。docker就是集装箱,只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。 @刘允鹏
  • Docker的技术原理:使用Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UionFS等技术,对进程进行封装隔离。由于隔离的进程独立于宿主和其他进程,因此也称其为容器。 容器间彼此隔离,还独立于底层的基础设施。应用出问题时,只会影响单个容器。

docker 实例

服务安装:

镜像

docker安装:

centos配置

1)查看centos系统版本命令:

2) 配置阿里云yum源
1.下载安装wget

yum install -y wget

2.备份默认的yum

mv /etc/yum.repos.d /etc/yum.repos.d.backup

3.设置新的yum目录

mkdir -p /etc/yum.repos.d

4.下载阿里yum配置到该目录中,选择对应版本

wget -O

/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

5.更新epel源为阿里云epel源

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup

mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

6.重建缓存

yum clean all

yum make cache

7.看一下yum仓库有多少包

yum repolist

8.升级系统内核

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
grep initrd16 /boot/grub2/grub.cfg
grub2-set-default 0
reboot

查看centos系统内核命令:

uname -r
uname -a

=================================

安装docker

1、阿里云开发者平台

开发者平台官网地址: 可以参考阿里云官网提供的docker安装教程进行安装

https://www.aliyun . com/

2、安装步骤:

1)安装docker前置条件

yum install -y yum-utils device-mapper-persistent-data lvm2

2)添加源

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

#刷新缓存

yum makecache fast

3)查看docker版本

yum list docker-ce --showduplicates sort -r

4)安装docker

安装最新版:推荐大家安装最新版本

#####客户端和服务端一起安装;

yum -y insta11 docker-ce

安装指定版本:

语法规则:

yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING>containerd.io

yum -y install docker-ce-18.06.3.ce-3.e17 docker-ce-cli.x86_64

yum insta11 -y docker-ce-19.03.9-3.e17 docker-ce-cli-19.03.9-3.e17

3、docker配置

1、启动

2、加速器地址

4、docker命令

docker v

docker version

docker info

Rancher

使用Rancher可以非常轻松地管理安装在本地或远程开发环境中的Kubernetes

K8S (kubernetes) 为企业提供了一种一致的方式来管理任何计算基础架构

目前最流行的容器编排框架,这里的容器主要是指docker

k8s集群:

管理服务器

业务服务器:

docker 命令 系统学习

docker命令分类

本章节记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,根据docker官网案例,总的来说分为以下几种:

Docker环境信息 - docker [infolversion]

容器生命周期管理 一 docker

[createexec|runstart|stoplrestart|killlrmlpauselunpause]

容器操作管理- docker [ps inspectltoplattachlwaitlexportlport|renamelstat]

容rootfs命令- docker [commitlcpldiff]

镜像仓库一docker [loginlpulllpushlsearch]

本地镜像管理- docker [buildlimages|rmiltaglsavelimportlload]

容器资源管理 - docker [volumelnetwork]

系统日志信息 - docker [events l history | logs]

镜像相关命令

docker images

docker pull

docker push

docker 镜像

1、中央仓库查找需要的镜像;

1) 地址

https://hub.docker .com/

Docker镜像 (image)

Docker Hub地址 docker hub类似maven远程仓库地址 https://hub.docker .com/

作为一名研发人员,则可以将镜像理解为类 (Class) 。是一个应用程序。

首先需要先从镜像仓库服务中拉取镜像。常见的镜像仓库服务是 Docker Hub,但是也存在其他镜像仓库服务。拉取操作会将镜像下载到本地 Docker 主机,可以使用该镜像启动一个或者多个容器;

2)版本确认

2、镜像大小

影响因素:LinuxOS内核、

alpine:??最小的内核 ;

采用那个基础镜像-做镜像;这个是个有争议的问题;

3、命令

docker images

docker pull

docker push

docker tag

docker save

docker load -i

docker inspect

docker rmi

docker image prune

docker 容器

1、容器介绍 :

2、相关命令:

docker run 命令

docker stop --

docker ps

docker rm

停止所有运行容器

docker stop $(docker ps -qa)

删除所有的容器

docker rm $(docker ps -aq)

docker rm $(docker stop $(docker ps -g))

删除所有的镜像

docker rmi $(docker images -g)

dokcer exec

dokcer logs

案例演示:

案例一:启动一个Nginx 容器

docker run -itd --name nginx6 -p 8080:80 nginx:1.22.1

1、报错了 : 百度 启动Docker容器报错docker: Error response from daemon: driver failed programming external connectivity on.._小白白程序员的博客-CSDN博客

防火墙的错

docker: Error response from daemon: driver failed programming external connectivity on endpoint nginx5 (dfb333352b438113d45787190c1cc6966b2b

de743fe7b60a947444bfc392b9b4):

(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.1

7.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.

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

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

相关文章

【MySQL数据类型】

目录&#xff1a; 前言数据类型分类整数类型tinyintbit 小数类型floatdecimal 字符串类型charvarchar日期和时间enum & set在集合中查找find_in_set 前言 剑指offer&#xff1a;一年又4天 数据类型分类 整数类型 tinyint 整数类型都分为有符号和无符号两种&#xff0c;默…

0X05

打开题目 点击完登录和注册都没有什么反应&#xff0c;所以先扫一下看看 在出现admin.php后就截止了&#xff0c;访问看看,进入后台。。 尝试一下弱口令 admin/12345 或者是demo/demo 设计中-自定义->右上角导出主题 找到一个导出的点&#xff0c;下载了一个1.zip压缩包…

解析Python爬虫利器 - lxml库

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在当今信息爆炸的时代&#xff0c;网络上的数据量庞大而繁杂。为了高效地从网页中提取信息&#xff0c;Python爬虫工程师们需要强大而灵活的工具。其中&#xff0c;lxml库凭借其卓越的性能和丰富的功能成为Pytho…

三十九、TCC模式

目录 一、定义 1、需要实现的方法&#xff1a; 2、优点&#xff1a; 3、缺点&#xff1a; 二、原理 1、例子&#xff1a; 2、工作模型图&#xff1a; 3、空回滚和业务悬挂 三、实现TCC模式 1、编写TCC服务接口 2、实现TCC服务接口 一、定义 TCC模式是Translucent Tr…

获客成本高?低成本获客有哪些途径?

获客成本是一个企业在营销中必须考虑的重要因素之一。它指企业在吸引新客户、推广产品或服务时所需要投入的资金、人力、物力等成本。不仅包括直接成本&#xff0c;如广告费用、促销费用等&#xff0c;还包括间接成本&#xff0c;如市场调研费用、销售人员薪酬等。 获客成本不是…

ELK日志分析

ELK是一套完整的日志集中处理方案&#xff0c;由三个开源软件简称组成&#xff1a; E&#xff1a;ElasticSearch ES 是一个开源的&#xff0c;分布式的存储检索引擎&#xff08;索引型的非关系型数据库&#xff09;。存储日志 java代码开发的&#xff0c;基于Lucene结构开发的…

【Java 基础】21 多线程同步与锁

文章目录 1.存在的问题2.使用同步解决问题1) synchronized2) volatile3) 锁 总结 用多线程过程中&#xff0c;有可能出现 多个线程同时处理&#xff08;获取或修改等&#xff09;同一个数据&#xff0c;这个时候就 会发生数据不同步的问题&#xff0c; 因此出现了同步和锁来…

用js自定义一个(v-model)vModel双向绑定函数

vue中的v-model是双向绑定的, 我们自己用JavaScript实现一个双向绑定vModel函数。 // element 元素或者#id,.class,div 得是input标签 // data 对象 // 将要绑定property 对象中的key<input class"vmodel"/>function vModel(element, data, property) {if (…

【Proteus】绘制简单的电路图

参考书籍&#xff1a;微机原理与接口技术——基于8086和Proteus仿真&#xff08;第3版&#xff09;&#xff08;作者&#xff1a;顾晖等&#xff09;&#xff0c;p111 1.放置元件 以8086为例&#xff1a; 确保处于元件模式&#xff0c;点击对应的按钮&#xff1a; 在元件库中…

自动生成实体类,mapper类和mapper.xml文件(解放双手,定义好数据库表就不要手写啦)

背景 建的表有四十多个字段&#xff0c;建好了已经很累了&#xff0c;映射成Javabean还要再写一次&#xff01;&#xff01; 吐槽 在建立好了sql表之后&#xff0c;我们已经写了一次建表了&#xff0c;难道还要我们自己再一次手写模Java模型吗&#xff0c;我的表有几十个字段…

数据结构——链式二叉树

前言&#xff1a;哈喽小伙伴们&#xff0c;上篇文章我们讲述了一个特殊的二叉树——使用数组实现的堆的基本知识之后呢&#xff0c;从这篇文章开始&#xff0c;我们就正式进入普通二叉树的介绍啦&#xff0c;二叉树真正的难点——递归&#xff0c;即将来临&#xff0c;小伙伴们…

力扣刷题day2(最长公共前缀,有效括号,删除有序数组中的重复元素)

题目1&#xff1a;14.最长公共前缀 思路和解析&#xff1a; #define _CRT_SECURE_NO_WARNINGS //最长公共前缀 char* longestCommonPrefix(char** strs, int strsSize) {// 如果字符串数组为空&#xff0c;则返回空字符串if (strsSize 0){return "";}// 将第一个…

P7 Linux C三种终止进程的方法

前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ &#x1f6f8;推荐专栏3: ​​​​​​《 链表_Chen…

基于深度学习面向中医诊断的舌象图像分割系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 中医舌诊是通过观察舌的各种特征来了解人体的健康状况&#xff0c;从而对各种疾病做出诊断及病情评估&#xff0c;是传统中国医学应用最广、最有价值的诊法之一。…

632. 最小区间

632. 最小区间 class Solution {public int[] smallestRange(List<List<Integer>> nums) {int size nums.size();Map<Integer, List<Integer>> indices new HashMap<Integer, List<Integer>>();int xMin Integer.MAX_VALUE, xMax Inte…

什么因素会影响葡萄酒陈酿的能力?

糖、酸和酚类与水的比例是葡萄酒陈酿程度的关键决定因素&#xff0c;收获前葡萄中的水分越少&#xff0c;产生的葡萄酒就越有可能具有一定的陈酿潜力。那么葡萄品种、气候和葡萄栽培实践的过程就相当重要了&#xff0c;对陈酿的时间发挥了重要的作用。皮较厚的葡萄品种&#xf…

iOS ------ 调用高德地图SDK

一&#xff0c;导入第三方库 这里使用CocoaPods安装SDK&#xff0c;方法和前面导入第三方库相同 1.打开终端&#xff0c;cd 文件路径 进入到所创建的项目文件中 2.输入pod init为该项目创建Podfile文件 3.编辑 Podfile 文件 Podfile文件内容如下&#xff1a; platform :ios,…

图形遍历效率低?试试 R 树

大家好&#xff0c;我是前端西瓜哥。 今天我们来看看 R 树是什么&#xff1f;以及它为什么能够提高图形的检索速度。 R 树&#xff08;R-tree&#xff09;是一种 空间索引技术&#xff0c;能够是从大量的节点中&#xff0c;快速找到特定范围的元素集合&#xff0c;而不用一个…

Verilog 入门(八)(验证)

文章目录 编写测试验证程序波形产生值序列重复模式 测试验证程序实例从文本文件中读取向量实例&#xff1a;时序检测器 测试验证程序用于测试和验证设计方法的正确性。Verilog 提供强有力的结构来说明测试验证程序。 编写测试验证程序 测试验证程序有三个主要目的&#xff1a;…

JNPF——强大、高效、易学的低代码开发工具

目录 1.什么是低代码 2.什么是JNPF? 3.推荐JNPF的理由 4.小结 你是否为编程世界的各种挑战感到头痛&#xff1f;想要以更高效、简单的方式开发出专业级的项目&#xff1f;JNPF低代码工具正是你苦心寻找的产品&#xff01;它是一款专为稍微懂一点点编程思想的入门级人员设计…