关于archlinux的使用

1.查看linux内核的版本

cat /proc/version

2.关于archlinux的软件安装

2.1 使用pacman -S yay -S进行安装,安装后,这些包都在/var/cache/pacman/pkg/文件夹下,为了避免使用pacman -Syu命令将某个软件更新,可以在/etc/pacman.confIgnorePkg位置加上这个软件名。
【如果想降级一个软件:可以参考https://wiki.archlinux.org/title/Arch_Linux_Archive#How_to_downgrade_one_package

2.2 如果下载的是一个tar.gz的压缩包,使用tar -zxvf进行解压,再进入到解压后的文件夹中,执行安装,此处执行makepkg的时候不允许用root用户,必须用普通用户,makepkg -s //-s参数可以自动解决依赖,编译完成后会生成一个.pkg.tar.xz的文件,再用pacman -U执行本地安装:
pacman -U visual-studio-code-bin-1.23.1-1-x86_64.pkg.tar.xz

2.3 如果下载的是一个.pkg.tar.xz的压缩包,用pacman -U执行本地安装。

3.关于在archlinux中使用root用于登录的方法

直接在命令行输入vim /usr/lib/systemd/system/getty@.service进行编辑
找到ExecStart=-/sbin/agetty --noclear %I 38400 linux
改为ExecStart=-/sbin/agetty --noclear -a root %I 38400 linux
然后重启电脑reboot即可

4.SSH服务

注意在开启ssh服务时,vim /etc/ssh/sshd_config找到PermitRootLogin prohibit-password,将prohibit-password改为yes

5.关于pacman的常用指令:

5.1 pacman -S 指令:安装

sudo pacman -S #安装软件
sudo pacman -Sy #获取最新打软件情况,如果已经是最新了,直接会提示已经更新到最新了。
sudo pacman -Syy #强行更新你的应用的软件库(源)
sudo pacman -Su #更新所有软件
sudo pacman -Syu #更新软件源并更新你的软件
sudo pacman -Syyu #强行更新一遍,再更新软件
sudo pacman -Ss <pkg_name> #查询所有软件名里面带有<pkg_name>相关的软件。
sudo pacman -Sc #删除软件/var目录下的缓存

5.2 pacman -R 指令:删除

sudo pacman -R <pkg_name> #删除软件
sudo pacman -Rs <pkg_name> #删除软件,并删除<pkg>所有的依赖包
sudo pacman -Rns <pkg_name> #删除软件,并删除<pkg>所有的依赖,并删掉<pkg>的全局配置文件。 推荐!!

5.3 pacman -Q 指令:查询

sudo pacman -Q #显示出所有软件 sudo pacman -Q | wc -l 查询数量
sudo pacman -Qe #查询所有自己安装的软件
sudo pacman -Qeq #查询所有自己安装的软件,只显示包名,不显示版本号等
sudo pacman -Qs <pkg_name> #查询本地安装的所有带<pkg_name>的软件
sudo pacman -Qdt #查询所有孤儿软件,不再被需要的。
sudo pacman -Qdtq #查询所有不再被依赖的包名

6.关于在命令行窗口开启/管理DL的方法

在archlinux中配置了clash后,或者其他的工具后,可以在使用脚本的方法实现在命令行自定义快速开启或者关闭代理,这样只要clash配置成服务了,即使远程也可以开启/关闭代理了。

  1. 通过命令 vim teminal_proxy.sh新建一个脚本文件,内容如下:
# 开启DL
function proxy_on(){
    export ALL_PROXY=socks5://127.0.0.1:1087  # 注意你的端口号可能不是1087,注意修改
    export http_proxy=http://127.0.0.1:1087
    export https_proxy=https://127.0.0.1:1087
    echo -e "已开启代理"
}
# 关闭DL
function proxy_off(){
    unset ALL_PROXY
    unset http_proxy
    unset https_proxy
    echo -e "已关闭代理"
}
  1. 修改配置文件
    通过命令vim /etc/bash.bashrc编辑配置文件,在最后一行加上下面的内容:
    source /home/fuhe/Downloads/clash/teminal_proxy.sh,因为我的脚本文件放在/home/fuhe/Downloads/clash/路径下。
    保存后,使用命令source /etc/bash.bashrc更新一下配置文件。
    然后在终端就可以使用以下命令随意打开/关闭代理了。
    打开代理:proxy_on 关闭代理:proxy_off
    在这里插入图片描述

7.利用Docker安装不同版本的MySQL

7.1安装Docker并开启Docker

  1. 安装docker
    sudo pacman -S docker
  2. 将docker设为开机启动
    sudo systemctl enable docker.service
  3. 启动docker
    sudo systemctl start docker.service
  4. 查看docker信息
    sudo docker info
  5. 常见操作
    docker start 容器名/容器ID 启动容器
    docker stop 容器名/容器ID 停止容器
    docker restart 容器名/容器ID 重启容器
    docker stats 容器名/容器ID 查看容器内存、CPU、网络IO、磁盘IO的情况
    docker rename 旧容器名 新容器名
    docker logs -f 容器名 滚动查看容器的日志

7.2 安装MySQL5.7.34

  1. 拉取MySQL5.7.34镜像
    docker pull mysql:5.7.34
  2. 查看当前所有的镜像
    docker images
  3. 创建并运行mysql57容器,同时设置MySQL5.7.34的root用户登录密码
    docker run --name mysql57 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.34
指令参数说明
run启动Docker
-p 3308:3306操作系统端口:Docker运行MySQL的服务端口
-name mysql57当前启动容器的名称
-e MYSQL_ROOT_PASSWORD=123456设置MySQL5.7.34的root用户密码
-d mysql5.7.34镜像名称
  1. 进入MySQL5.7.34所在的Docker中
    docker exec -it mysql57 bash

  2. 登录MySQL
    mysql -uroot -p
    然后输入密码即可登陆成功。

  3. 修改本地root密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password' PASSWORD EXPIRE NEVER;

  4. 修改本地密码后远程仍使用旧密码的解决方法
    Mysql 中一个用户,对应两个密码,一个是 @localhost 的密码, 一个是 @% 的密码。
    select host, user, authentication_string from mysql.user查看
    在这里插入图片描述
    更改远程登录的密码:
    UPDATE user SET authentication_string= PASSWORD('654321') WHERE User = 'root';

  5. 设置mysql随docker启动而自启动
    docker update mysql --restart=always

7.3 安装MySQL8.0.26

  1. 拉取MySQL8.0.26镜像
    docker pull mysql:8.0.26
  2. 查看当前所有的镜像
    docker images
  3. 创建并运行mysql80容器,同时设置MySQL8.0.26的root用户登录密码
    docker run --name mysql80 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.26
指令参数说明
run启动Docker
-p 3309:3306操作系统端口:Docker运行MySQL的服务端口
-name mysql80当前启动容器的名称
-e MYSQL_ROOT_PASSWORD=123456设置MySQL8.0.26的root用户密码
-d mysql8.0.26镜像名称
  1. 进入MySQL8.0.26所在的Docker中
    docker exec -it mysql80 bash
  2. 登录MySQL
    mysql -uroot -p
    然后输入密码即可登陆成功。
  3. 如果要远程连接,更改远程root用户的密码规则。
#使用mysql数据库
USE mysql;
#修改'root'@'%'用户的密码规则和密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
#刷新权限
FLUSH PRIVILEGES;

注意:
由于最新版MySQL的加密方式改变了,如果使用Navicat Premium 15等工具连接无法连接成功,我们需要对docker【mysql80】里面的MySQL8.0.26的加密方式进行修改。
输入docker exec -it mysql80 bash进入当前docker,其中mysql80是该docker的容器名字,如图所示:
在这里插入图片描述

#使用mysql数据库
USE mysql;
#修改'root'@'localhost'用户的密码规则和密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc123';
#刷新权限
FLUSH PRIVILEGES;

这只是对本地root用户进行的修改,如果是要远程连接,也需要对远程用户的密码规则进行修改。如6中所述。
如果仅仅是修改密码,则使用命令:alter user 'root'@'localhost' identified by 'new password';

8.在Docker中安装vim

/etc/apt/sources.list文件中,写入源地址。

echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list
echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list

apt-get update
apt-get install vim

9.关于端口

在MySQL中查看端口:show global variables like 'port';
找到端口对应的进程,lsof -i:3307,可通过kill PID关闭进程。

10.查看容器的IP

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

11.容器下的日志管理

docker的日志,docker的日志分为两种,第一种是docker引擎的日志,第二种是docker容器运行时的服务日志。默认为json-file格式,json-file日志驱动记录从容器的 STOUT/STDERR的输出 ,用 JSON 的格式写到文件中,日志中不仅包含着输出日志,还有时间戳和输出格式。
常用的驱动是json-file,syslog ,journald 这三种,json-file 是默认的日志驱动。
docker的日志通常默认是保存在 /var/lib/docker/containers/容器名称/ 目录下,如果是默认的json-file 驱动,那么日志文件名称为 容器名称-json-log,当然,docker日志也有级别,通常级别为info,如果为debug的话,那么日志增长会非常快的。
docker日志快速增长的解决方法:

11.1 定时任务清空日志(需定时查看并手动清理)

这种方法可以通过建立脚本的方法。如下:
在这里插入图片描述
首先在脚本路径下新建脚本文件:vim docker_log.sh,我的路径在/home/fuhe/Documents/dockerLog/下。
然后添加下面的内容:

function dockerLogSIze(){
	echo "======== docker containers logs file size ========"
	logs=$(find /var/lib/docker/containers/ -name *-json.log)
	for log in $logs
	do
	ls -lh $log
	done
}
function cleanDockerLog(){
	echo "======== start clean docker containers logs ========"
	logs=$(find /var/lib/docker/containers/ -name *-json.log)
	for log in $logs
	do
	echo "clean logs : $log"
	cat /dev/null > $log
	done
	echo "======== end clean docker containers logs ========"
}

需要添加执行权限
chmod +x docker_log.sh
完成后,在/etc/bash.bashrc文件的最后一行加上:
source /home/fuhe/Documents/dockerLog/docker_log.sh
添加后,通过命令source /etc/bash.bashrc进行更新。
然后在命令行终端就可以通过dockerLogSIze查看日志的大小,通过cleanDockerLog清理日志文件。
当然可以将脚本设为定时启动的,定期就执行一次。

11.2 限制日志的大小

另一种方法就是通过设置Docker容器日志大小,有三种实现方式。

  1. 全局限制,也就是所有的docker容器统一使用一个限定值,不管是原来已启动的镜像还是以后将要启动的镜像,统统限制日志大小。
    新建daemon.json:vim /etc/docker/daemon.json,然后添加一下内容:

    {
    "log-driver":"json-file",
    "log-opts": {"max-size":"500m", "max-file":"3"}
    }
    

    max-size=500m,意味着一个容器日志大小上限是500M,max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。使用的驱动是json-file驱动。

  2. docker run 阶段,某一个容器单独限定日志大小。
    --log-driver json-file --log-opt max-size=10m,比如,将这一段加在docker run 后面,那么以这条命令启动的容器日志将会限定在10m大小,并且使用的日志驱动是json-file。
    docker run --name mysql57 -p 3308:3306 --log-driver json-file --log-opt max-size=10m -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.34
    这个mysql57容器的日志将会保持在10m大小。使用的日志驱动是json-file。

  3. docker-compose 编排启动一组容器时组内每个容器日志限制大小。
    关于docker-compose 编排文件限制,参考下面的文章。

https://blog.csdn.net/yy8623977/article/details/124563135?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166374101416782391862774%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166374101416782391862774&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~pc_rank_34-2-124563135-null-null.142v48pc_rank_34_1,201v3control_1&utm_term=docker-compose%20%E7%BC%96%E6%8E%92%E6%96%87%E4%BB%B6%E9%99%90%E5%88%B6&spm=1018.2226.3001.4187

### 在 Arch Linux使用 Docker 安装 Oracle 数据库 #### 准备工作 为了在 Arch Linux 上成功安装并运行 Oracle 数据库,需先确认已正确设置好 Docker 环境。这包括但不限于更新系统软件包列表以及安装最新版本的 Docker[^1]。 #### 配置 Docker 存储驱动 由于某些存储驱动可能会影响性能或兼容性,在 Arch Linux 中建议采用 `overlay2` 作为默认存储引擎来优化读写效率和稳定性。 #### 获取官方镜像 从 Oracle 的公共容器注册表获取最新的免费版 Oracle 数据库镜像: ```bash docker pull container-registry.oracle.com/database/free:latest ``` 此命令会下载适用于多种操作系统的通用映像文件至本地缓存中以便后续创建实例时调用[^2]。 #### 启动容器 定义必要的环境变量与端口映射关系之后启动一个新的容器实例: ```bash docker run -d \ --name oracle-db \ -p 1521:1521 \ -e ORACLE_PASSWORD=YourStrong!Passw0rd \ container-registry.oracle.com/database/free:latest ``` 上述脚本指定了服务监听于外部 IP 地址下的标准 SQL*Net 协议端口号 (即 1521),同时设置了管理员账户 (`SYS`) 所对应的初始密码。 #### 设置数据持久化 为了避免因意外停止而导致的数据丢失风险,应当考虑将重要目录挂载到宿主机路径之下实现冷备份功能。具体做法如下所示: ```bash mkdir -p /data/oracle/oradata /data/oracle/backup chown -R 1000:1000 /data/oracle/ docker stop oracle-db && docker start oracle-db docker exec -it oracle-db bash -c "cp -r /opt/oracle/oradata/* /mnt/oradata/" ``` 这里假设 `/data/oracle` 是位于宿主机上的目标位置;而 `-v` 参数则用于指定卷绑定规则,确保即使容器被销毁也能保留住内部状态信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤鸟的歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值