jobcher

jobcher

欢迎关注

清理Docker的container,image与volume
清理Docker的container,image与volume
清理 Docker 的 container,image 与 volume Docker 的镜像(image)、容器(container)、数据卷(volume), 都是由 daemon 托管的。 因此,在需要清理时,也需要使用其自带的手段。 清理技巧 清理所有停止运行的容器: 1docker container prune 2# or 3docker rm $(docker ps -aq) 清理所有悬挂(<none>)镜像: 1docker image prune 2# or 3docker rmi $(docker images -qf "dangling=true") 清理所有无用数据卷: 1docker volume prune 由于prune操作是批量删除类的危险操作,所以会有一次确认。 如果不想输入y<CR>来确认,可以添加-f操作。慎用! 清理停止的容器 docker rm -lv CONTAINER -l是清理 link,v是清理 volume。 这里的 CONTAINER 是容器的 name 或 ID,可以是一个或多个。 参数列表: Name shorthand Default Description –force,-f false Force the removal of a running container (uses SIGKILL) –link, -l false Remove the specified link –volumes, -v false Remove the volumes associated with the container 清理所有停止的容器 通过docker ps可以查询当前运行的容器信息。 而通过docker ps -a,可以查询所有的容器信息,包括已停止的。
JOBCHER BLOG
Jenkins 安装与使用
Jenkins 安装与使用 代码在本地修改—-》提交到远程 gitlab—-》触发 jenkins 整个自动化构建流程(打包,测试,发布,部署) 安装 docker 安装 docker docker 安装 jenkins 1docker run \ 2 -u root \ 3 -d \ 4 -p 8080:8080 \ 5 -p 50000:50000 \ 6 -v jenkins-data:/var/jenkins_home \ 7 -v /etc/localtime:/etc/localtime:ro \ 8 -v /var/run/docker.sock:/var/run/docker.sock \ 9 --restart=always \ 10 jenkinsci/blueocean 访问 http://localhost:8080 显示初始密码 1docker exec -ti <容器名称> sh 2cat /var/jenkins_home/secrets/initialAdminPassword 工作流程 先定义一个流水线项目,指定项目的 git 位置 git 位置自动拉取代码 解析拉取代码里面的 Jenkinsfile 文件 按照 Jenkinsfile 指定的流水线开始加工项目 Jenkinsfile 语法 基础语法,在仓库创建一个 Jenkinsfile 文件
JOBCHER BLOG
Navicat 查看导出连接的密码 | navicat查看密码方案
Navicat 查看密码方案 解决问题: 我们经常使用 navicat 连接数据库,有时候时间久了之后,会忘记之前的密码,那么现在我们有办法获得只要正常连接的数据库的密码 步骤: 导出连接 connections.ncx,拿到保存到本地的 connections.ncx 文件中的 Password,粘贴到下面的代码中 登陆https://tool.lu/coderunner/,使用 PHP 在线运行工具,粘贴下面添加密码后的代码 备用工具网址(https://zixuephp.net/tool-runcode.html) 1<?php 2class NavicatPassword 3{ 4 protected $version = 0; 5 protected $aesKey = 'libcckeylibcckey'; 6 protected $aesIv = 'libcciv libcciv '; 7 protected $blowString = '3DC5CA39'; 8 protected $blowKey = null; 9 protected $blowIv = null; 10 11 public function __construct($version = 12) 12 { 13 $this->version = $version; 14 $this->blowKey = sha1('3DC5CA39', true); 15 $this->blowIv = hex2bin('d9c7c3c8870d64bd'); 16 } 17 18 public function encrypt($string) 19 { 20 $result = FALSE; 21 switch ($this->version) { 22 case 11: 23 $result = $this->encryptEleven($string); 24 break; 25 case 12: 26 $result = $this->encryptTwelve($string); 27 break; 28 default: 29 break; 30 } 31 32 return $result; 33 } 34 35 protected function encryptEleven($string) 36 { 37 $round = intval(floor(strlen($string) / 8)); 38 $leftLength = strlen($string) % 8; 39 $result = ''; 40 $currentVector = $this->blowIv; 41 42 for ($i = 0; $i < $round; $i++) { 43 $temp = $this->encryptBlock($this->xorBytes(substr($string, 8 * $i, 8), $currentVector)); 44 $currentVector = $this->xorBytes($currentVector, $temp); 45 $result .
ProXmoX VE升级 apt-get update 报错
ProXmoX VE升级 apt-get update 报错
ProXmoX VE 升级 apt-get update 报错 解决方法 1vim /etc/apt/sources.list.d/pve-enterprise.list 2#注释掉 3#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise 添加内容 1echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list 2wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg 更新系统 1apt update && apt dist-upgrade 结尾 升级完成后,可以执行pveversion -v查看下最新的软件版本。然后执行reboot重启物理服务器
JOBCHER BLOG
mysql 笔记(2)
mysql 学习笔记(2) mysql 主从复制 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 MySQL 主从复制的主要用途 读写分离 数据实时备份,当系统中某个节点发生故障时,可以方便的故障切换(主从切换) 高可用(HA) 架构扩展 MySQL 主从复制的原理 MySQL 主从复制涉及到三个线程,一个运行在主节点(log dump thread),其余两个(I/O thread, SQL thread)运行在从节点,如下图所示: 主节点 log dump 线程 当从节点连接主节点时,主节点会为其创建一个 log dump 线程,用于发送和读取 bin-log 的内容。在读取 bin-log 中的操作时,log dump 线程会对主节点上的 bin-log 加锁,当读取完成,在发送给从节点之前,锁会被释放。主节点会为自己的每一个从节点创建一个log dump 线程。 从节点 I/O 线程 当从节点上执行start slave命令之后,从节点会创建一个 I/O 线程用来连接主节点,请求主库中更新的 bin-log。I/O 线程接收到主节点的 blog dump 进程发来的更新之后,保存在本地relay-log(中继日志)中。 从节点 SQL 线程 SQL 线程负责读取 relay-log 中的内容,解析成具体的操作并执行,最终保证主从数据的一致性。 对于每一个主从连接,都需要这三个进程来完成。当主节点有多个从节点时,主节点会为每一个当前连接的从节点建一个log dump 进程,而每个从节点都有自己的I/O进程,SQL进程。从节点用两个线程将从主库拉取更新和执行分成独立的任务,这样在执行同步数据任务的时候,不会降低读操作的性能。比如,如果从节点没有运行,此时 I/O 进程可以很快从主节点获取更新,尽管 SQL 进程还没有执行。如果在 SQL 进程执行之前从节点服务停止,至少 I/O 进程已经从主节点拉取到了最新的变更并且保存在本地 relay 日志中,当服务再次起来之后,就可以完成数据的同步。
JOBCHER BLOG
Proxmox VE 在线扩容磁盘分区
Proxmox VE 在线扩容磁盘分区 添加磁盘大小 在 VM 上做扩容操作 安装 growpart 1yum install -y epel-release 2yum install -y cloud-utils 查看系统盘 路径 1fdisk -l 2df -h 扩容设备并重启 1growpart /dev/sda 2 #2代表是第二块系统分区,不是sda2,中间有空格 2reboot 重启执行命令 1xfs_growfs /dev/sda2 #(xfs 文件系统) 2resize2fs /dev/sda2 #(ext4 文件系统) 更新完成 1df -h 逻辑卷没有正常扩容的情况 检查当前逻辑卷属于哪个卷组: 1vgdisplay 检查卷组中是有足够的空间可以扩容,还有99g 扩展逻辑卷大小到200G: 1lvextend -L +99G /dev/mapper/ubuntu--vg-ubuntu--lv 调整文件系统大小到逻辑卷大小: 1resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 4. 检查 1df -h /dev/mapper/ubuntu--vg-ubuntu--lv 成功扩容
JOBCHER BLOG
Gitlab批量导出用户
Gitlab 批量导出用户 登陆 Gitlab 服务器进行数据库登陆、数据查询及信息导出操作。 操作步骤 根据配置文件,定位数据库相关信息 1cat /var/opt/gitlab/gitlab-rails/etc/database.yml 查看 Gitlab 对应的系统用户 1cat /etc/passwd | grep gitlab 切换用户 gitlab-psql 1su - gitlab-psql 登陆数据库(-h 指定 host,-d 指定数据库) 使用第 1 步获取的信息 1psql -h /var/opt/gitlab/postgresql -d gitlabhq_production (1) 查看帮助信息 1gitlabhq_production=# \h (2) 查看数据库 1gitlabhq_production=# \l (3) 查看库中的表(执行命令后,按回车键显示更多表信息) 1gitlabhq_production=# \dt (4) 通过筛查,可在库中找到 users 表,相关用户信息都记录在表中! 1gitlabhq_production=# \d users (5) 查看表信息 1gitlabhq_production=# SELECT * FROM users; (6) 查看 users 表中的 name 字段 1gitlabhq_production=# SELECT name FROM users; (7)登出数据库
JOBCHER BLOG
Harbor 搭建
Harbor 搭建 Harbor 是一个开源可信的云原生注册表项目,用于存储、签名和扫描内容。用于存储 docker image 要求 Linux 主机 docker 17.06.0-ce 以上 docker-compose 1.18.0 以上 链接跳转:docker 安装 安装 下载程序 在线安装包 1wget https://github.com/goharbor/harbor/releases/download/v1.10.10/harbor-online-installer-v1.10.10.tgz 离线安装包 1wget https://github.com/goharbor/harbor/releases/download/v1.10.10/harbor-offline-installer-v1.10.10.tgz 安装 1mkdir -p /data 2cd /data 3tar -zxvf harbor-offline-installer-v1.10.10.tgz 4cd /harbor 5./install.sh 接下来只要安静的等待安装就可以了 配置 1# Configuration file of Harbor 2 3# The IP address or hostname to access admin UI and registry service. 4# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
JOBCHER BLOG
prometheus grafana alertmanager 安装配置
prometheus+grafana+alertmanager 安装配置 服务器监控告警系统搭建,通过 exporter 获取节点信息到 prometheus。prometheus 配置规则,使 garfana 和 alertmanager 能够接受到数据,分别展示数据和发送告警 参数 VM :192.168.99.78 端口 服务 9100 node_exporter 3000 grafana 9090 prometheus 9115 blackbox_exporter 安装 grafa 安装 docker 安装 1docker run -d -p 3000:3000 \ 2--name=grafana \ 3-v grafana-storage:/var/lib/grafana \ 4grafana/grafana:8.3.3 prometheus 安装 下载 1wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz 2tar -zxvf prometheus-2.32.1.linux-amd64.tar.gz 3cd prometheus-2.32.1.linux-amd64 4mkdir -p file_sd 5mkdir -p rules 运行 prometheus 1killall prometheus 2nohup ./prometheus --config.file=prometheus.yml & 3# 查看运行状况 4tail -f nohup.out node_exporter 安装 docker-compose 安装 1version: "3" 2services: 3 node-exporter: 4 image: prom/node-exporter:v1.
JOBCHER BLOG
prometheus 配置
prometheus 配置 Prometheus 是由 SoundCloud 开源监控告警解决方案 组件 Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。 client libraries,用于对接 Prometheus Server, 可以查询和上报数据。 push gateway ,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。 各种汇报数据的 exporters ,例如汇报机器数据的 node_exporter, 汇报 MongoDB 信息的 MongoDB exporter 等等。 用于告警通知管理的 alertmanager 。 运行逻辑 Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。 Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。 Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。 安装 prometheus 使用预编译的二进制文件安装 1wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz 2tar -zxvf prometheus-2.32.1.linux-amd64.tar.gz 3cd prometheus-2.
JOBCHER BLOG
centos7.9 网络配置
centos7.9 网络配置 解决 centos 新机器网络不通的问题,CentOS7 默认不启动网卡的。CentOS 安装成功后,进行一下 ping 的操作,验证网络是否联通. 1ping 1.1.1.1 2ip addr 3# 查看ip网络名称 启用网卡 进入 /etc/sysconfig/network-scipts 文件夹下,找到 IP 网卡名称 1cd /etc/sysconfig/network-scipts 2vim ifcfg-eth0 启用 ONBOOT 1#vim ifcfg-eth0 2#修改 3ONBOOT=YES 4# esc 并:wq退出保存 重启机器 1shutdown -r now 结尾 centos 用的挺别扭,不考虑性能和性价比,我还是喜欢用 ubuntu……,简单的配置,初学者我建议还是先用 ubuntu,会少踩很多坑。当然了,用 x86 不然初学者用树莓派和 arm 设备,会碰到很多兼容性的问题。
安装 docker 出现 ERROR: Unsupported distribution 'ol' 问题
安装 docker 出现 ERROR: Unsupported distribution 'ol' 问题
安装 docker 出现 ERROR: Unsupported distribution ‘ol’ 问题 部署 docker 安装出现 ERROR: Unsupported distribution ‘ol’ 确认是不是 arm 架构 1uname -r 确认使用的是不是 oracle 服务器系统,如果是请继续操作,安装依赖: 1dnf install -y dnf-utils zip unzip 2dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo 安装 docker 1dnf remove -y runc 2dnf install -y docker-ce --nobest 完成 docker 安装并检查 1systemctl enable docker.service 2systemctl start docker.service 1#检查 2systemctl status docker.service 3docker info 4docker version 结尾 该问题主要是 oracle 没有支持依赖导致的~oracle 还是很不错的~