docker的安装配置及使用
一.Docker的由来
Docker 最初是 dotCloud 公司创始人Solomon Hykes 在法国期间发起的一个公司内部项目。
2010年的专门做PAAS平台,但是到了2013年的时候,像亚马逊,微软,Google都开始做PAAS平台。
到了2013年,公司资金链断裂,不得不倒闭,于是将公司内的核心技术对外开源,核心技术就是Docker。
由于开源了Docker,到了2014年的时候,得到了各轮融资,于是公司开始全神贯注的维护Docker。
二.Docker的思想
Docker是一种容器化技术,也是一种虚拟化技术
封装:将需要的操作系统,环境,软件封装到一个镜像中。
标准化:
运输的标准化:Docker提供了中央仓库,所有官方的镜像都放在了这个中央仓库中,当需要使用某一个镜像时,通过相应的方式拉取即可。
命令的标准化:Docker提供了一些列的命令,帮助我们去获取镜像,管理容器等等操作。
提供了REST的API:基于标准REST的API衍生出了很多的图形化界面,如Rancher等。
隔离性:Docker在运行镜像时,会在Linux的内核中,单独的开辟一片空间,这片空间不会影响到其他程序。容器是完全使用沙箱机制,相互隔离,容器性能开销极低。
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
三、Docker的安装
3.1 下载Docker依赖的环境
安装Docker,需要先将依赖的环境全部下载,就像Maven依赖JDK一样。
yum -y install yum-utils device-mapper-persistent-data lvm2
3.2 指定Docker镜像源
默认情况下,下载Docker会从国外服务器下载,速度较慢,我们可以设置为阿里云镜像源,速度更快。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.3 安装Docker
采用yum的方式安装。
yum makecache fast
yum -y install docker-ce
3.4 启动Docker并测试
安装成功后,需要手动启动,设置为开机自启,并测试。
# 启动Docker服务
systemctl start docker
# 设置开机自动启动
systemctl enable docker
# 查看Docker服务状态
systemctl status docker
#不开机自动启动docker
systemctl disable docker
#停止docker
systemctl stop docker
# 重启
systemctl restart docker
四、Docker的中央仓库【重点
】
Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢。
https://hub.docker.com/
国内的镜像网站:网易蜂巢,daoCloud等,下载速度快,但是镜像相对不全。
登录
Hub · DaoCloud (推荐使用)
在公司内部会采用私服的方式拉取镜像,需要添加配置,如下……
# 设置从哪个镜像源下载镜像
vi /etc/docker/daemon.json
# 设置从ustc下载镜像, 速度快
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
# 重启docker服务
systemctl restart docker
# 需要创建或修改/etc/docker/daemon.json,并添加如下内容,"ip:port"可以编写多个。
{"registry-mirrors": ["https://registry.docker-cn.com"],"insecure-registries": ["ip:port"]
}
# 重启docker服务
systemctl restart docker
五、镜像的操作【重点
】
5.1 搜索镜像
搜索中央仓库镜像
docker search 镜像名称
5.2 拉取镜像
从中央仓库拉取镜像到本地
docker pull 镜像名称[:tag]
# 举个栗子:docker pull daocloud.io/library/tomcat:8.5.15-jre8
5.3 查看本地全部镜像
查看本地已经安装过的镜像信息,包含标识,名称,版本,更新时间,大小
docker images
5.4 删除本地镜像
镜像会占用磁盘空间,可以直接手动删除,
标识
通过 查看获取
docker rmi 镜像的标识 | 镜像名称:tag
docker rmi b8dfe9ade316
docker rmi daocloud.io/library/tomcat:8.5.15-jre8
5.5 镜像的导入导出
如果出现网络故障,可以采过硬盘的方式传输镜像,虽然不规范,但是有效。
但是这种方式导出的镜像名称和版本都是null,需要手动修改
# 将本地的镜像导出
docker save -o 导出的路径 镜像id
doeker save -o /usr/local/abc.tar b8dfe9ade316
# 加载本地的镜像文件
docker load -i 镜像文件
docker load -i /usr/local/abc.tar
# 修改镜像名称
docker tag 镜像id 新镜像名称:版本
docker tag b8dfe9ade316 mytomcat:1.0
六、容器操作【重点
】
6.1 运行容器
运行容器需要指定具体镜像,如果镜像不存在,会直接下载
# 简单操作
docker run 镜像的标识 | 镜像名称[:tag]
docker run b8dfe9ade316
docker run daocloud.io/library/tomcat:8.5.15-jre8
# 常用的参数
docker run -di -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[:tag]
docker run -di -p 8090:8080 --name my_container b8dfe9ade316
# -i 表示运行容器
# -d:代表后台运行容器(守护式进程)
# -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用。
# -it : 创建交互式进程
# -p 宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
# --name 容器名称:指定容器的名称
守护式进程: 创建容器,自动后台运行容器
交互式进程:创建容器,自动进入容器,退出容器后,自动关闭容器
6.2 查看正在运行的容器
查看全部正在运行的容器信息
docker ps [-qa]
# -a:查看全部的容器,包括没有运行
# -q:只查看容器的标识
6.3 查看容器日志
查看容器日志,以查看容器运行的信息
docker logs -f 容器id
# -f:可以滚动查看日志的最后几行
6.4 进入容器内容部
可以进入容器内部进行操作
docker exec -it 容器id bash
docker exec -it 容器名称 bash
6.5 复制内容到容器
将宿主机的文件复制到容器内部的指定目录
docker cp 文件名称 容器id:容器内部路径
6.6 重启&启动&停止&删除容器
容器的启动,停止,删除等操作,后续经常会使用到
# 重新启动容器
docker restart 容器id
# 启动停止运行的容器
docker start 容器id
# 停止指定的容器(删除容器前,需要先停止容器)
docker stop 容器id
# 停止全部容器
docker stop $(docker ps -qa)
# 删除指定容器
docker rm 容器id
# 删除全部容器
docker rm $(docker ps -qa)
七、Docker应用
7.1 Docker安装Tomcat
运行Tomcat容器,为部署SSM工程做准备
docker run -d -p 8080:8080 --name tomcat daocloud.io/library/tomcat:8.5.15-jre8
7.2 Docker安装MySQL
运行MySQL容器,为部署SSM工程做准备
docker run -d -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 daocloud.io/library/mysql:5.7.4
# 宿主机中通过 3366连接 容器中的mysql
[root@localhost logs]# mysql -uroot -P 3366 -proot -h 192.168.1.135
相关文章:
docker的安装配置及使用
一.Docker的由来 Docker 最初是 dotCloud 公司创始人Solomon Hykes 在法国期间发起的一个公司内部项目。 2010年的专门做PAAS平台,但是到了2013年的时候,像亚马逊,微软,Google都开始做PAAS平台。 到了2013年,公司资金链…...

初阶 《操作符详解》 10. 逗号表达式
10. 逗号表达式 exp1, exp2, exp3, …expN 注: 1.逗号表达式,就是用逗号隔开的多个表达式 2.逗号表达式,从左向右依次执行,整个表达式的结果是最后一个表达式的结果 代码1 #include <stdio.h> int main() {int a 1;int b…...
【区分vue2和vue3下的element UI Loading 加载组件,分别详细介绍属性,事件,方法如何使用,并举例】
首先,需要澄清的是,Element UI 是为 Vue 2 设计的,而 Element Plus 是 Element UI 的 Vue 3 版本。在 Element UI 和 Element Plus 中,并没有一个直接名为 “Loading 加载” 的独立组件。相反,加载效果通常是通过指令、…...

数据结构:栈(stack)详解 c++信息学奥赛基础知识讲解
目录 一、栈的定义 二、栈的操作 三、代码实操 四、栈的实现 1、string实现stack 2、vector实现stack 3、deque实现栈 一、栈的定义 stack是一个比较简单易用的数据结构,stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中ÿ…...
电商返利系统的高并发处理与性能优化
电商返利系统的高并发处理与性能优化 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在电子商务平台中,返利系统是吸引用户和提升用户粘性的重要功…...
NPM 常用命令
NPM 常用命令 NPM(Node Package Manager)是 JavaScript 生态系统中最流行的包管理工具,它不仅可以管理 Node.js 项目的依赖,还提供了丰富的命令来管理和发布你的代码。本文将从不同角度,深入浅出地介绍 NPM 的常用命令…...

C++进修——C++核心编程
内存分区模型 C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制编码,由操作系统进行管理全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值ÿ…...
【信息系统项目管理师知识点速记】项目文档管理
19.3 项目文档管理 信息系统相关信息(文档)是指某种数据媒体和其中所记录的数据。文档具有永久性,并可以由人或机器阅读,通常用于描述人工可读的内容。在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息(包…...
服务器硬件,raid配置
文章目录 服务器硬件RAID磁盘阵列RAID 0RAID 1RAID 5RAID 6RAID 10 阵列卡,阵列卡的缓存阵列卡阵列卡的缓存 软RAID磁盘阵列RAID阵列的管理及设备恢复mdadm 服务器硬件 处理器(CPU):服务器的核心组件,负责执行计算和指令操作。服务器常使用多…...
fc-list命令使用指南
fc-list命令使用指南 一、什么是fc-list? fc-list是FontConfig库的一部分,最初为Linux和其他Unix-like系统开发。我们可以用这个命令行快速查询和列出系统中安装的字体。 现在,Windows用户也集成了这个工具,所以我们来讲解一下用法。 二、…...

NAS安全存储怎样实现更精细的数据权限管控?
NAS存储,即网络附属存储(Network Attached Storage),是一种专用数据存储服务器,其核心特点在于将数据存储设备与网络相连,实现集中管理数据的功能。 NAS存储具有以下明显优势,而被全球范围内的企…...

第三十篇——等价性:如何从等价信息里找答案?
目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 知道了等价性的逻辑,通过等价性去衡量事物,像是给…...

RabbitMQ实践——搭建多人聊天服务
大纲 用户登录创建聊天室监听Stream(聊天室)发送消息实验登录Tom侧Jerry侧 创建聊天室Jerry侧Tom侧 进入聊天室Jerry侧Tom侧 发送消息Jerry发送消息Jerry侧聊天室Tom侧聊天室 Tom发送消息Jerry侧聊天室Tom侧聊天室 代码工程参考资料 在《RabbitMQ实践——…...

git分布式版本控制系统
Git - Downloads (git-scm.com) gitee教程(超全,超详细,超长)-CSDN博客 Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com) 所有的版本控制系统,其实只能跟踪文本文件改动,比如TXT文件,网页&…...

基于weixin小程序的民宿短租系统的设计与实现
管理员账户功能包括:系统首页,个人中心,房主管理,房间类型管理,用户管理,民宿信息管理,民宿预订管理,系统管理 小程序功能包括:系统首页,民宿信息,…...
2024-06-22力扣每日一题
链接: 2663. 字典序最小的美丽字符串 题意 略 解: 要求字符串内不存在任何长度为 2 或更长的回文子字符串,则在任意位置不存在aa或aba形式 由于要被给定字符串字典序大,且找到符合条件的字典序最小字符串,则竟可…...

S_LOVE多端恋爱小站小程序源码 uniapp多端
S_LOVE多端恋爱小站小程序源码,采用uniapp多端开发框架进行开发,目前已适配H5、微信小程序版本。 源码下载:https://download.csdn.net/download/m0_66047725/89421726 更多资源下载:关注我。...
如何避免MySQL的死锁或性能下降
1、按顺序访问数据 确保多个线程或事务在访问多个表或行时,按照相同的顺序进行。这可以避免循环等待和资源竞争,从而降低死锁的风险。 2、避免长时间持有锁 尽量缩短事务的执行时间,避免长时间持有锁。长时间持有锁会增加其他事务等待的时…...

《C语言》编译和链接
文章目录 一、翻译环境1、预处理2、编译3、汇编4、链接 二、运行环境 一、翻译环境 在使用编译器编写代码时,编写的代码是高级语言,机器无法直接识别和运行,在编译器内部会翻译成机器可执行的机器语言。 编译环境由编译和链接两大过程组成。 …...
group by和select的兼容性问题
group by和select的兼容性问题 在标准的SQL语法中,GROUP BY 和 SELECT 之间不存在兼容性问题,因为它们是 SQL 查询语句的基本组成部分,而且它们的使用方式是相互兼容的。 SELECT 子句和 GROUP BY 子句的关系: SELECT 子句&#…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...