Docker 安装配置
本章背景知识
本章主要介绍在 Centos 操作系统平台上进行安装和配置Docker Engine。
环境准备
1、操作系统支持。
CentOS、Debian、Fedora、Raspbian、RHEL、SLES、Ubuntu、Binaries
2、启用yum 软件仓库源。
centos-extras
编者注:Centos 默认已经开启centos-extras 源。
3、移除Docker旧版本。
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
4、关闭 firewalld 防火墙,安装 iptables 防火墙。
# 关闭防火墙
systemctl stop firewalld# 取消开机启动
systemctl disable firewalld#安装iptables
yum install iptables-services -y# 重启防火墙使配置生效
systemctl start iptables# 设置防火墙开机启动
systemctl enable iptables
如果不执行这一步,Docker 服务器无法自动添加规则
[(103条消息) centos7安装docker报错iptables v1.4.21: Couldn‘t load target `DOCKER-ISOLATION‘_尧、木子的博客-CSDN博客](https://blog.csdn.net/weixin_38879931/article/details/125563912)
5、创建默认存储目录
mkdir /data
安装方法
1、yum 仓库:
使用 yum 软件仓库联网安装。
2、RPM包:
下载 RPM 包并手动安装,并且手动管理升级。这对于有些无法访问互联网的机器特别有用。
3、自动化脚本:
在测试和开发环境中,用户使用自动化脚本安装 Docker。
编者注:本章节介绍【yum仓库】和【RPM包】安装方式。
yum 仓库:联网安装
设置 yum 软件仓库
1、安装 yum-utils 软件包。
2、设置Docker软件仓库。
sudo yum install -y yum-utils$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
Docker Engine 安装步骤
1、安装 Docker Engine ,容器和 Docker Compose
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
2、安装过程中,会提示验证指纹,你需要接受并验证它。
3、若需要安装特定版本的 Docker 引擎,你需要列出所有的可用版本。
yum list docker-ce --showduplicates | sort -r
4、启动 Docker
sudo systemctl start docker
5、验证 Docker 是否能够运行hello-world镜像
sudo docker run hello-world
RPM 包:离线安装
1、大多数生产环境是不允许连接外网的,所以只能使用下载 RPM 包后手动安装。
2、由于安装 Docker RPM 包的相关依赖包非常复杂,所以这里就使用制作好的 Yum 离线缓存,进行安装,简化安装过程。
设置 yum 软件仓库
1、下载对应网盘中的 yum 仓库缓存包和配置文件,找到对应操作系统版本。
2、上传对应 yum.tar.gz 和 yum.repos.d.tar 包。
cd /var/cache/
rm -rf /var/cache/yum
tar -zxvf yum.tar.gz
cd /etc/
rm -rf /etc/yum.repos.d
tar -zxvf yum.repos.d.tar.gz
Docker Engine 安装步骤
1、安装 Docker Engine ,容器和 Docker Compose
sudo yum -C --nogpgcheck install -y yum-utils
sudo yum -C --nogpgcheck install docker-ce docker-ce-cli containerd.io docker-compose-plugin
| 选项 | 说明 |
|---|---|
| -C | 不更新缓存 |
| –nogpgcheck | 不验证指纹。 |
2、启动 Docker |
sudo systemctl start docker
3、Docker 镜像本地化仓库配置
Docker Hub 在国内访问比较慢,可以使用本地化网易镜像,提高下载镜像的速度。
4、配置镜像源地址。
root# vim /etc/docker/daemon.json---------------写入以下内容--------------{
....
"registry-mirrors": ["https://hub-mirror.c.163.com"]
....
}
5、重启 Docker 服务。
root# sudo systemctl restart docker
6、验证 Docker 是否能够运行 hello-world 镜像
sudo docker run hello-world
配置 Docker Engine 服务
本节主要介绍Docker Engine 服务配置。
Docker Engine管理用户
以上方式安装后,不会自动创建管理Docker服务的普通用户。每次操作Docker都需要root用户,这样非常不方便。针对这个问题,可以创建新的普通用户,并且加入到docker用户组。
1、创建Docker Engine专用管理用户,并加入docker用户组。
sudo useradd docker -g docker
Docker Engine服务管理
1、Docker Engine 服务开启启动
systemctl enable docker
2、systemctl 启停Docker Engine服务。
sudo systemctl start docker.service
sudo systemctl status docker.service
sudo systemctl stop docker.service
3、service 启停Docker Engine服务。
root# sudo service docker start
root# sudo service docker status
root# sudo service docker stop
Docker Engine更改默认存储目录
1、Docker 默认的存储目录是存放在/var/lib/docker,这个目录一般挂载在根(/) 目录下。
2、这个目录存储大量的镜像和容器,非常容易撑满磁盘,所以需要更换默认的存储目录。
3、配置默认存储目录。
root# vim /etc/docker/daemon.json---------------写入以下内容--------------{…snip…"data-root": "/data"…snip…}
4、关闭Docker 服务。
sudo systemctl stop docker
5、迁移Docker 容器和镜像数据。
sudo mv /var/lib/docker/* /data/
6、重启Docker服务。
root# sudo systemctl start docker
7、检查是否能够成功拉取镜像。
root# sudo docker pull hello-world
也可以使用软连接方式进行数据迁移。相关文章:
Docker 安装配置
本章背景知识 本章主要介绍在 Centos 操作系统平台上进行安装和配置Docker Engine。 环境准备 1、操作系统支持。 CentOS、Debian、Fedora、Raspbian、RHEL、SLES、Ubuntu、Binaries 2、启用yum 软件仓库源。 centos-extras 编者注:Centos 默认已经开启cento…...
死锁检测组件-设想
死锁检测组件-设想 现在有三个临界资源和三把锁绑定了,三把锁又分别被三个线程占用。(不用关注临界资源,因为锁和临界资源是绑定的) 但现在出现这种情况:线程1去申请获取锁2,线程2申请获取锁3,…...
线程池的使用
为什么要使用线程池 复习一下创建线程的几种方式: 继承Thread 实现Runnable 实现Callable 但是如果频繁的创建/销毁线程,就会造成资源浪费。这时候就需要将线程创建好之后存起来,以后要用取出来,用完后再放回去。 注意 ÿ…...
字节码指令
目录 2.1 入门 2.2 javap 工具 2.3 图解方法执行流程 1)原始 java 代码 2)编译后的字节码文件 3)常量池载入运行时常量池 4)方法字节码载入方法区 5)main 线程开始运行,分配栈帧内存 6)…...
TLS/SSL证书彻底扫盲
证书格式 pem Privacy Enhanced Mail文本格式,以 -----BEGIN CERTIFICATE----- 开头,以-----END CERTIFICATE-----结尾 der 二进制格式,只保存证书,不保存私钥java和window服务器常见 pfx/p12 Predecessor of PKCS#12二进制格式&…...
WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第五步-高级可视化)
1写在前面 前面我们用WGCNA分析完成了一系列的分析,聚类分割模块。🥰 随后进一步筛选,找到与我们感兴趣的表型或者临床特征相关的模块,而且进行了模块内部分析。😘 再然后是对感兴趣模块进行功能注释,了解模…...
try catch finally执行顺序
try catch finally,try里有return,finally还执行么?答案: 执行,并且返回return时,finally的执行早于try。try-catch-finally的执行顺序无return当try中的t()没有抛出异常public static void main(String[] …...
2023年数学建模美赛D题(Prioritizing the UN Sustainability Goals)分析与编程
2023年数学建模美赛D题分析建模与编程 重要说明: 本文介绍2023年美赛题目,并进行简单分析;本文首先对 D题进行深入分析,其它题目分析详见专题讨论;本文及专题分析将在 2月17日每3小时更新一次,完全免费&am…...
35岁测试工程师被辞退,给你们一个忠告
一:前言:人生的十字路口静坐反思 入软件测试这一行至今已经10年多,承蒙领导们的照顾与重用,同事的支持与信任,我的职业发展算是相对较好,从入行到各类测试技术岗位,再到测试总监,再转…...
华为OD机试题 - 租车骑绿岛(JavaScript)
最近更新的博客 2023新华为OD机试题 - 斗地主(JavaScript)2023新华为OD机试题 - 箱子之形摆放(JavaScript)2023新华为OD机试题 - 考古学家(JavaScript)2023新华为OD机试题 - 相同数字的积木游戏 1(JavaScript)2023新华为OD机试题 - 最多等和不相交连续子序列(JavaScri…...
Linux下Python脚本的编写解析fio(minimal格式)(三)
在服务器测试(storage)过程中,会看到很多人写跑fio的脚本用minimal格式来解析,因为这种格式返回的结果对与脚本(shell,python)解析log非常方便.下面介绍一下这种方式下,用Python来解析log 1 一般客户会要求结果中出现一下参数的值: bandwidth…...
【实战场景二】如何设计一个分布式锁?
如何优雅的设计一个分布式锁?如何设计一个分布式锁?1、什么是分布式锁2、那么分布式锁,具备什么条件呢?3、设计分布式锁有哪些方式?3.1 利用redis实现分布式锁原理3.2 基于数据库做分布式锁3.3 基于zookeeper实现分布式…...
Java中ThreadLocal类详解
ThreadLocal从名字上我们看出,它叫做本地线程变量,每个线程都有各自的的变量,而不再是我们之前的两个线程共用同一个变量;以这个类创建的变量,在多个线程都用到这个变量时,可以为每一个线程创建一个变量副本…...
从一致性角度考虑推荐冷启动长尾推荐问题(一)
前言:目前中长尾推荐的方法有很多,主流的方法有几类比如:1)在没有项目ID嵌入的情况下提高推荐模型的鲁棒性,2)利用有限的交互数据提高学习效率,如使用元学习方法;3)利用物品侧面信息,便于物品ID嵌入的初始化࿰…...
电脑(Windows)常用快捷键
简述:实用的键盘快捷键是一个程序员的必备技能,下面给大家整理了一下常用的键盘快捷键; ⭐CtrlP 打开“打印机”对话框; ⭐CtrlW 关闭当前网页; ⭐CtrlF 查找(网页内查找); ⭐…...
Java类加载器
1 类加载器 1.1 类加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。如果不出现意外情况,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为…...
信号完整性设计规则之单根信号失真最小化
本文内容从《信号完整性与电源完整性分析》整理而来,加入了自己的理解,如有错误,欢迎批评指正。 1. 通常采用所能容许的最长上升边。 上升边越短,带宽越大,信号完整性问题越严重。 2. 使用可控阻抗走线。 可控阻抗…...
Python3 数据结构
列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。 以下是 Python 中列表的方法: 方法 描述 list.append(x) 把一个元素添加到列表的结尾…...
Compose-Navigation带参传递
带参传递 目前 compose 还不支持传入对象作为参数! 简单双参数 根目录下新建文件夹 entity,新建单例类 ContentType 作为数据类存储位置 新增数据类 DemoContent,这表示我们需要传入的两个参数,后面带问号判空 object ContentT…...
【函数栈帧的创建和销毁】 -- 神仙级别底层原理,你学会了吗?
文章目录1.函数的调用方式 2.函数在栈区上的动作 1.函数的调用方式 相信你对调用函数一点都不陌生,但是在调用函数的过程中,却存在着很多你无法见到的东西,这是底层信息,想要理解透彻,就得深入底层去观察。 本文以…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
