Centos8 初探

# C8源的处理

# C8 Base源  阿里源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

# EPEL

dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

dnf repolist all

# 系统更新 

dnf update

:: 设置自动更新

dnf install dnf-automatic

vim /etc/dnf/automatic.conf

---------------------------------------

如果想只下载不安装并邮件提醒

download_updates = yes

apply_updates = no

systemctl enable --now dnf-automatic.timer

systemctl list-timers *dnf-* --all

# 常用工具安装

dnf install net-tools  (ifconfig,netstat...)

sudo dnf install -y bash-completion  # 自动补全功能

# 其他工具安装

工具一: Cockpit Web Console  基于web图形化管理Centos的功能

官方站:https://cockpit-project.org/

yum install cockpit  # 安装

systemctl start cockpit.socket  # 启动

https://IP:9090  # 访问

 Note:  /etc/cockpit/ws-certs.d目录中调用证书,并使用.cert扩展文件。 为避免提示安全警告,请安装由证书颁发机构(CA)签名的证书。

工具二:

官方站:https://podman.io/   替代Docker 的管理工具

工具简介:

Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用。Podman 提供与 Docker 非常相似的功能。正如前面提到的那样,它不需要在你的系统上运行任何守护进程,并且它也可以在没有 root 权限的情况下运行。Podman 可以管理和运行任何符合 OCI(Open Container Initiative)规范的容器和容器镜像。Podman 提供了一个与 Docker 兼容的命令行前端来管理 Docker 镜像。Podman不需要运行一个守护进程(docker daemon)。

dnf install -y podman  # 安装

# 设置镜像加速(不设置国内拉取镜像比较慢)

方法1:Podman 默认注册表配置文件在 /etc/containers/registries.conf
方法2: 在~/.config/containers 目录下新建一个文件registries.conf

方法1,方法2写入如下内容:
unqualified-search-registries = ["docker.io"] [[registry]] prefix = "docker.io" location = "1vs5nfat.mirror.aliyuncs.com" # 这个为你自己的镜像加速地址,注意:不要跟https


 # 容器存放路径修改:

sudo vim ~/.config/containers/storage.conf   修改标红部分路径即可

# podman的容器如何设置自启动

方法1: ~/.config/systemd/user/<自定义容器的服务名>.service   # 比较方便集中管理,目录需要自己创建,推荐!
方法2: /usr/lib/systemd/system/<自定义容器的服务名>.service
方法3: /etc/systemd/system/<自定义容器的服务名>.service

方法1 启动方法:

systemctl --user daemon-reload
systemctl --user enable <自定义容器的服务名>
systemctl --user start <自定义容器的服务名>
systemctl --user status <自定义容器的服务器名> # 查看状态

方法2,方法3 启动方法:

sudo systemctl daemon-reload
sudo systemctl enable <自定义容器的服务名>
sudo systemctl start <自定义容器的服务名>
sudo systemctl status <自定义容器的服务器名> # 查看状态

 

 由于 Podman 不再使用守护进程管理服务,所以不能通过守护进程去实现自动重启容器的功能

vim /etc/systemd/system/nginx_podman.service  # 创建并写入下面的信息

[Unit]
Description=Podman Nginx Service
After=network.target  # 在网络启动以后
After=network-online.target  # 在网络启动以后(如果有多个容器,可以设置在某个容器以后)

[Service]
Type=simple
ExecStart=/usr/bin/podman start -a nginx
ExecStop=/usr/bin/podman stop -t 10 nginx
Restart=always

[Install]
WantedBy=multi-user.target

  

# 创建测试容器

podman run -dt -p 1180:80 --name nginx -v /home/loki/Test/data:/data -e NGINX_VERSION=1.16 nginx:1.16.0

-p <物理机端口>:<容器端口>

-v <物理机路径>:<容器路径>

 # 迁移容器

# 迁移podman  导出到其他容器
$ sudo podman container checkpoint <容器名或ID> -e /tmp/<容器名>.tar.gz $ scp /tmp/<容器名>.tar.gz <目的地ServerIP>:/tmp

# 导入其他容器到podman
 sudo podman container restore -i /tmp/<容器名>.tar.gz

 

# 防火墙相关  nftables 

增:

增加表:nft add table fillter  
增加链:nft add chain filter input 
增加规则:nft add rule filter input tcp dport 1211 accept      插入规则: nft insert rule filter INPUT tcp dport 22 accept

注:使用 index 来指定规则的索引。add 表示新规则添加在索引位置的规则后面,insert 表示新规则添加在索引位置的规则前面。index 的值从 0 开始增加。

删:

删除表:nft delete table fillter
删除链:nft delete chain filter input 
删除规则:nft delete rule filter input tcp dport 1211 accept

查:

nft list ruleset # 列出所有规则   -a(结尾处) --handle(nft 之后) 使用 handle 来指定规则的句柄。add 表示新规则添加在索引位置的规则后面,insert 表示新规则添加在索引位置的规则前面。handle 的值可以通过参数 -a 获取
nft list tables # 列出所有表
nft list table filter # 列出filter表
nft chain filter input # 列出filter表input链
以上命令后面也可以加 -nn 用于不解析ip地址和端口
加 -a 用于显示 handles
sudo nft --echo --handle add rule filter INPUT tcp dport 9090 accept

备份与恢复: 所有示例中的规则都是临时的,要想永久生效,我们可以将规则备份,重启后自动加载恢复,其实 nftables 的 systemd 服务就是这么工作的。

备份规则:nft list ruleset > /root/nftables.conf
加载规则:nft -f /root/nftables.conf

# 安装Python环境支持

 dnf install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel make patch gdbm-devel git

# 可能需要FQ,如果不能FQ就去download这个脚本,放到本地执行

$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

vim  ~/.bashrc 写入下面内容,source ~/.bashrc

export PATH="/home/loki/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

# 安装python虚拟环境

pyenv install 3.8.x

原文地址:https://www.cnblogs.com/Cong0ks/p/13066187.html