docker的基本管理
Docker的概念
云计算三层架构
服务 | 说明 | 应用 |
IAAS | 基础设施及服务 | 硬件(服务器、网络设置、防火墙等)虚拟化 网络虚拟化(大二层) 例:openstack |
PAAS | 平台及服务 | 环境 例:数据库、 docker 、kubernetes |
SAAS | 应用及服务 | 应用 例:应用商店的应用 |
而Docker就是PAAS中的技术。
Docker是什么
Docker是一种轻量级的“虚拟机”,是一个开源的应用容器引擎。容器是完全使用沙箱机制,相互之间不会有任何接口
轻量级表示它体积小,灵活
而说它是虚拟机,又不是真正的虚拟机,因为它里面没有系统
开源表示它是免费的
Docker和虚拟机的区别
对比参数 | 虚拟机 | 容器 |
启动时间 | 慢 (分钟级别) | 快速(毫秒级别) |
占用空间 | 大(整个系统的大小,几G) | 小(内核大小,几M) |
系统隔离 | 逻辑隔离 | 依赖于内核(内核共享) |
安全性 (因为隔离性) | 高 | 低(使用原系统内核) |
使用场景
对应用的打包与部署自动化
创建轻量、私密的PAAS环境
实现自动化测试和持续的集成/部署
部署与扩展webapp、数据库和后台服务
Docker的核心概念(重点)
镜像(镜像的压缩包)
容器(实例,通过镜像创建)
仓库(存放镜像的地方)
公有仓库:Docker官方仓库
私有仓库:个人化、私有化的仓库
小结
Docker是容器管理工具,容器由镜像创建而来,镜像从仓库中获取而来,仓库分为公有、私有。
CentOS中的安装方法
方法一:
使用CURL获得Docker的安装脚本(get-docker.sh)进行安装
方法二:
使用yum仓库安装
我们使用第二种方法安装
Docker相关命令
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2#yum-utils提供了yum-config-manager
#device mapper存储驱动程序需要device-mapper-persistent-data和lvm2
#Device Mapper 是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker-CE
yum install -y docker-ce
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
systemctl start docker.service
systemctl enable docker.service
配置阿里云镜像加速,不然下载速度很慢
加速地址从自己的阿里云上获取
阿里云官网:https://account.aliyun.com/
获取方式:登录阿里云–>控制台–>在上面搜索容器镜像服务–>左下角的镜像加速器
在此页面中显示阿里云的镜像加速地址和配置方法
systemctl daemon-reload
systemctl restart docker
网络优化
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker
基础命令
查看docker版本信息
docker version
镜像的操作
查找指定镜像
docker search 服务名
例如:
docker search nginx
下载镜像
docker pull 服务名
例如:
docker pull nginx
查看镜像信息
docker images
docker inspect 镜像的ID
例如
docker images
docker inspect f6d0b4767a6c
添加新标签(打标签)
docker tag 仓库名:原镜像名 仓库名:新镜像名
例如:
docker tag nginx:latest nginx:test
docker images
docker images | grep nginx
删除镜像
指定镜像ID删除的时候,要求不能有该镜像不能有标签
docker rmi 镜像的ID
docker rmi 仓库名:镜像名
例如:
docker rmi f6d0b4767a6c
docker images
docker rmi nginx:test
docker images
将镜像存储到本机上,命名为nginx_latest
docker save -o 存放镜像的位置 仓库名:镜像名
例如:
docker save -o /opt/nginx_latest nginx:latest
载入镜像
方法一:
docker load < 本地导出的镜像名
方法二:
docker --input 本地导出的镜像名例如:
docker load < nginx_latest
docker load --input nginx_latest
方法二:
上传镜像
将本地的镜像上传到公有的镜像仓库,要先登陆到镜像仓库
上传镜像前要修改标签,标签前面要加上Docker官网的账号名
标签格式: Docker官网的账号名/仓库名:镜像名
不过一般不会上传到公有仓库中,公司内部都使用私有仓库
私有云到后面再说
docker push [OPTIONS] NAME[:TAG]例如:按照下面的流程就可以上传到公有云,有兴趣的可以上传
#改标签
docker tag 仓库名:镜像名 用户名/仓库名:镜像名
#登录
docker login
Username: #用户名
Password: #密码#上传
docker push 用户名/仓库名:镜像名
容器的操作
查看容器运行状态
容器的STATUS状态
up是正在运行的
Exited (0)是正常停止的容器
Exited (非0)异常停止的容器
docker ps #查看运行中的容器
docker ps -a #加-a 列出所有的容器,包括未运行的容器
创建容器
docker create [选项] 镜像运行的程序
-i:让容器的标准输入保持打开
-t:让Docker分配一个伪终端例;
docker create -it nginx:latest /bin/bash
启动、停止、重启容器
docker start 容器ID:启动一个或多个已经被停止的容器
docker stop 容器ID:停止一个运行中的容器
docker restart 容器ID:重启容器
例:
docker start a9b99fced079
docker ps -a
docker stop a9b99fced079
docker ps -a
docker restart a9b99fced079
运行容器
run和start的作用有些类似,准确来说run相当于create+start
一般第一次可以使用run,后面维护还是使用start/stop/restart
docker run [选项] 镜像 [命令] [变量]
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-c 命令表示后面的参数将会作为字符串读入作为执行的命令
-v: 绑定一个卷
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
--name="名称": 为容器指定一个名称
--link name:alias 添加链接到另一个容器,格式“--link容器名:别名”
例如:
docker run nginx
docker run -d nginx
docker run -d nginx /bin/bash -c "ls"
进入、退出容器
进入的容器状态一定要是运行状态
docker exec [选项] 容器 命令
例:
docker exec -it 0d89bd6232f3 /bin/bash
docker exec -it 6445720c61a5 /bin/bash
exit//退出容器
容器导出、导入
#容器导出
docker export 容器ID > 备份文件名#容器导入(会生成镜像,而不会创建容器)
cat 备份文件名 | docker import - 仓库名:镜像名例如:
docker export 6445720c61a5 > nginx_up
docker export 0d89bd6232f3 > nginx_exitedcat nginx_up | docker import - nginx:web
删除容器
docker rm 容器ID
例如:
docker rm 4d8dcf51a4ef
//批量删除容器
docker ps -a | awk '{print "docker rm "$1}' | bash
私有仓库的操作
创建私有仓库
docker pull registry
修改
vim /etc/docker/daemon.json
{
"insecure-registries": ["192.168.163.100:5000"], 添加
"registry-mirrors": ["阿里云加速地址"]
}
systemctl restart docker.service
docker create -it registry /bin/bash
docker ps -adocker start 8480e3f87c8e
挂载容器
宿主机的/data/registry自动创建挂载容器中的/tmp/registry
docker run -d -p 宿主机端口:容器内部端口 -v 宿主机目录:容器内目录 镜像
例:
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
更改标记
更改标记为192.168.163.100:5000/nginx
上传
获取私有仓库列表
curl -XGET http://192.168.163.100:5000/v2/_catalog
//显示上传成功
(""repositories":[""nginx"")
测试私有仓库下载
docker pull 192.168.163.100:5000/nginx
Docker数据卷和数据卷容器
在创建数据卷和数据卷容器的时候,如果挂载目录不存在,则会自动创建
数据卷
将宿主机目录/var/www挂载到容器中的/data1上
docker run -v /var/www:/data1 --name test -it centos:7 /bin/bashcd /data1/
touch test1111返回宿主机进行查看
ls /var/www/
数据卷容器
//数据卷容器
docker run --name juan -v /data1 -v /data2 -it centos:7 /bin/bash
//新容器挂载数据卷容器juan
docker run -it --volumes-from juan --name test2 centos:7 /bin/bash
小结:数据卷与数据卷容器的区别
数据卷是挂载在宿主机上的
数据卷容器是通过–volumes-from实现容器与容器之间的挂载
端口映射
docker run -d -P httpd:centos7
docker run -d -p 49280:80 httpd:centos7
容器互联(使用centos镜像)
//创建并运行容器取名web1,端口号自动映射
docker run -itd -P --name web11 centos:7 /bin/bash//创建并运行容器取名web2,链接到web1和其通信进web22容器 ping web1
docker run -itd -P --name web22 --link web11:web11 centos:7 /bin/bash--link name:alias --link容器名:别名
总结
1、镜像
查找镜像(search)—上传(pull)、下载(push)—打标签(tag)—删除(rm)—导出(save)、导入(load)
2、容器
查看(ps)—创建(create)—启动(start)、停止(stop)、重启(restart)—运行(run)—进入(exec)、退出(exit)—导入(import)、导出(export)—删除(rmi)
3、仓库
下载registry镜像—>运行容器、暴露端口5000—>修改daemon.json文件—>重启docker
挂载容器—>打标签—>上传—>查询—>下载
相关文章:
docker的基本管理
Docker的概念云计算三层架构服务说明应用IAAS基础设施及服务硬件(服务器、网络设置、防火墙等)虚拟化网络虚拟化(大二层)例:openstackPAAS平台及服务环境例:数据库、 docker 、kubernetesSAAS应用及服务应用…...
2023年房地产投资-租金和IRR研究报告
第一章 概况 房地产投资租赁是指置业投资者在购买到物业后,首先对该物业进行适当整饰与装修,之后以出租人的身份,以口头协议或签订合同的形式,将房屋交付承租人占有、使用与收益,由承租人向出租人交付租金的行为。通过…...
2023-2-10刷题情况
青蛙过河 题目描述 小青蛙住在一条河边, 它想到河对岸的学校去学习。小青蛙打算经过河里 的石头跳到对岸。 河里的石头排成了一条直线, 小青蛙每次跳跃必须落在一块石头或者岸上。 不过, 每块石头有一个高度, 每次小青蛙从一块石头起跳, 这块石头的高度就 会下降 1 , 当石头…...
Python学习-----无序序列2.0(集合的创建、添加、删除以及运算)
目录 前言: 什么是集合 集合的三大特性 1.集合的创建 (1)直接创建 (2)强制转换 2.集合的添加 (1)add()函数 (2)update() 函数 3.集合元…...
2023最详细的接口测试用例设计教程
一、接口测试流程 1、需求讨论 2、需求评审 3、场景设计 4、数据准备 5、测试执行 二、分析接口文档元素 1、接口名称 2、接口地址 3、支持格式 4、请求方式 5、请求参数(参数名称、类型、是否必填、参数说明等) 6、返回参数(返回…...
【数据库】 数据库的理论基础详解
目录 一, 什么是数据库 二, 数据库管理系统(DBMS) 三,数据库与文件系统的区别 1,对比区别: 2,优缺点总结: 四,数据库的发展史 五,常见数据库 1, 关系型…...
Linux环境运行Maven 生成的hadoop jar包
运行命令: hadoop jar ./jar包名字 class对象路径 输入路径 输出路径 linux内部jar包测试 cd 到以下目录,创建以下文件夹 [rootreagan180 ~]# cd /opt/soft/hadoop313/share/hadoop/mapreduce/ 创建文件夹(读取路径) [roo…...
ThreadPoolExecutor原理解析
1. 工作原理1.1 流程图1.2 执行示意图从上图得知如果当前运行的线程数小于corePoolSize(核心线程数),则会创建新线程作为核心线程来执行任务(注意,执行这一步需要获取全局锁)。如果运行的线程等于或多于corePoolSize,则将任务加入BlockingQue…...
谷粒学苑第二章前端框架-2.2前端框架开发过程
一、前端框架开发过程 第一步:添加路由 src/router模块用来管理路由。 第二步:点击某个路由,显示路由对应页面内容 component: () > import(/views/table/index), 表示路由对应的页面,是views/table/index.vue页面 第三步&a…...
权限管理实现的两种方式(详解)
登录的接口请求的三个内容:1. token2. 用户信息、角色信息3. 菜单信息第一种:基于角色Role的动态路由管理 (不推荐,但市场用的比较多)首先列出枚举每个角色对应几个路由,然后根据用户登录的角色遍历枚举出来的角色动态注册对应的路…...
【C++】智能指针思路解析和模拟实现
此篇文章就从以下几个方面出发,带你了解智能指针的方方面面1.为什么需要智能指针当我们开辟内存并使用的时候,我们的顺序应该是这样:开辟内存-》使用内存-》释放内存问题就出现在第三步,开辟好了,也使用了,…...
SpringCloud(18):Sentinel流控降级入门
Sentinel本地应用流控降级实现分为三步: 创建本地应用搭建本地Sentinel控制台本地应用接入本地Sentinel控制台1 本地应用创建 整体流程分析 创建springboot项目在项目的pom.xml文件中引入sentinel-core的依赖坐标创建TestController,定义使用限流规则运行测试具体流程 1.创…...
C++【多态】
文章目录1、多态的概念2、多态的定义及实现2-1、多态的构成条件2-2、虚函数2-3、虚函数的重写2-4 多态样例2-5、协变2-6、 析构函数与virtual2-7、函数重载、函数隐藏(重定义)与虚函数重写(覆盖)的对比2-8、override 和 final&…...
缓存预热、缓存雪崩、缓存击穿、缓存穿透,你真的了解吗?
缓存穿透、缓存击穿、缓存雪崩有什么区别,该如何解决? 1.缓存预热 1.1 问题描述 请求数量较高,大量的请求过来之后都需要去从缓存中获取数据,但是缓存中又没有,此时从数据库中查找数据然后将数据再存入缓存…...
【Java基础】018 -- 面向对象阶段项目上(拼图小游戏)
目录 拼图小游戏(GUI) 一、主界面分析 1、练习一:创建主界面1 2、练习二:创建主界面2(JFrame) 3、练习三:在游戏界面中添加菜单(JMenuBar) ①、菜单的制作 4、添加图片&a…...
【网络~】
网络一级目录二、socket套接字三、UDP数据报套接字四、TCP流套接字一级目录 1.局域网、广域网 2.IP地址是什么? IP地址是标识主机在网络上的地址 IP地址是如何组成的? 点分十进制,将32位分为四个部分,每个部分一个字节ÿ…...
手写JavaScript中的call、bind、apply方法
手写JavaScript中的call、bind、apply方法 call方法 call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 function Product(name, price) {this.name name;this.price price; }function Food(name, price) {Product.call(this, name, price);t…...
JAVA练习46-将有序数组转换为二叉搜索树
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 提示:这里可以添加本文要记录的大概内容: 2月10日练习内容 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目-…...
linux(centos7.6)docker
官方文档:https://docs.docker.com/engine/install/centos/1安装之前删除旧版本的docker2安装yum install-y yum-utils3配置yum源 不用官网的外国下载太慢 推荐阿里云yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.r…...
微信小程序滚动穿透问题
文章目录1、catchtouchmove"true"2、page-meta3、wx.setPageStyle做小程序的开发业务中,经常会使用弹窗,当弹窗里的内容过多时,要滚动查看,然后经常会遇到滚动弹窗,弹窗底下页面也跟着滚。解决思路ÿ…...
安全—06day
负载均衡反向代理下的webshell上传负载均衡负载均衡下webshell上传的四大难点难点一:需要在每一台节点的相同位置上传相同内容的webshell难点二:无法预测下一次请求是哪一台机器去执行难点三:当我们需要上传一些工具时,麻烦来了&a…...
PostgreSQL入门
PostgreSQL入门 简介 PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES, 版本 4.2为基础的对象关系型数据库管理系统(ORDBMS) 支持大部分SQL标准并且提供了许多现代特性 复杂查询外键触发器可更新视图事务完整性多版本并发控制 …...
自媒体人都在用的免费音效素材网站
视频剪辑、自媒体人必备的剪辑音效素材网站,免费下载,建议收藏! 1、菜鸟图库 音效素材下载_mp3音效大全 - 菜鸟图库 菜鸟图库是一个综合性素材网站,站内涵盖设计、图片、办公、视频、音效等素材。其中音效素材就有上千首…...
Java数据结构中二叉树的深度解析及常见OJ题
本篇文章讲述Java数据结构中关于二叉树相关知识及常见的二叉树OJ题做法讲解(包含非递归遍历二叉树) 目录 一、二叉树 1.1二叉树概念 1.2特殊的二叉树 1.3二叉树性质 1.4二叉树基本性质定理题 1.5二叉树遍历基本操作 1.6二叉树遍历的前中后非递归写法 1.7…...
算法顶级比赛汇总
可参赛的算法比赛 阿里云天池大数据竞赛 时间:每年各个季度很多类型都会出题(比赛总时间大概为两个月) 内容:各个类型的算法题都会出、奖金上万不等 形式:在线提交(提交后在线检查结果)、离线…...
Android MVI框架搭建与使用
MVI框架搭建与使用前言正文一、创建项目① 配置AndroidManifest.xml② 配置app的build.gradle二、网络请求① 生成数据类② 接口类③ 网络请求工具类三、意图与状态① 创建意图② 创建状态四、ViewModel① 创建存储库② 创建ViewModel③ 创建ViewModel工厂五、UI① 列表适配器②…...
第九节 使用设备树实现RGB 灯驱动
通过上一小节的学习,我们已经能够编写简单的设备树节点,并且使用常用的of 函数从设备树中获取我们想要的节点资源。这一小节我们带领大家使用设备树编写一个简单的RGB 灯驱动程序,加深对设备树的理解。 实验说明 本节实验使用到STM32MP1 开…...
Ubuntu 系统下Docker安装与使用
Ubuntu 系统下Docker安装与使用Docker安装与使用Docker安装安装环境准备工作系统要求卸载旧版本Ubuntu 14.04 可选内核模块Ubuntu 16.04 使用 APT 安装安装 Docker CE使用脚本自动安装启动 Docker CE建立 docker 用户组测试 Docker 是否安装正确镜像加速Docker使用拉取镜像创建…...
DHCP安全及防范
DHCP安全及防范DHCP面临的威胁DHCP饿死攻击仿冒DHCP Server攻击DHCP中间人攻击DHCP Snooping技术的出现DHCP Snooping防饿死攻击DHCP Snooping防止仿冒DHCP Server攻击DHCP Snooping防止中间人攻击DHCP Snooping防止仿冒DHCP报文攻击DHCP面临的威胁 网络攻击无处不在ÿ…...
【流畅的python】第一章 Python数据模型
文章目录第一章 Python 数据模型1.1 python风格的纸牌1.2 如何使用特殊方法-通过创建一个向量类的例子1.3 特殊方法汇总第一章 Python 数据模型 python最好的品质是一致性 python解释器碰到特殊句法时,会使用特殊方法去激活一些基本的对象操作 这些特殊的方法以两个…...
如何查到网站是谁做的/无锡seo公司
输入描写叙述: 输入包括多组数据,每组数据包括两行。 第一行为正整数n(3≤n≤50)。紧接着第二行包括n个由数值和运算符组成的列表。 “-*/”分别为加减乘除四则运算。当中除法为整除。即“5/31”。 输出描写叙述: 相应每一组数据,…...
免费空间访问/seo搜索优化推广
【IT168 专稿】存储是目前IT产业发展的一大热点,而RAID技术是构造高性能、海量存储的基础技术,也是构建网络存储的基础技术。专家认为,磁盘阵列的性能优势得益于磁盘运行的并行性,提高设备运行并行度可以提高磁盘的性能和数据安全…...
企业网站升级/国外免费网站建设
题目描述: (1)数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5示例 2: 输入:[3,2] 输出:-…...
上海建网站制/教育机构退费纠纷找谁
第一个JSP实际上,JSP只是简单地将Java放到HTML网页中去而已。你可以将现有的HTML网页将它们的扩展名由“.html”改为“.jsp”,这是一个创建第一个JSP最好的方法。我们可以将上一个练习中的文件将它的扩展名由“.html”改为“.jsp”。然后在浏览器中装载新…...
点击图片预览 wordpress/郑州seo网站排名
目前智能顾问已掌握大量资产,第一个以人工智能驱动的基金Rebellion曾成功预测了2008年股市崩盘,并在2009年给希腊债券F评级,而当时惠誉的评级仍然为A,通过人工智能,Rebellion比官方降级提前一个月;掌管900亿…...
最专业的网站建设价格/看广告收益最高的软件
矩阵分析之 实矩阵分解(1)特征分解与奇异值分解前言特征分解(又称谱分解、对角化)奇异值分解SVDSVD的进一步理解前言 本篇开始学习记录矩阵分解内容。需要说明的是,目前我所触及的矩阵基本上没有出现复数域࿰…...