# Centos问题

# 网络问题

# 修改域服务器

# 方法一

/etc/resolv.conf是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。/etc/resolv.conf保存DNS是暂时的,当重新启动network时,/etc/resolv.conf恢复到了初始状态,要想更改,可尝试下边的方法:

PEERDNS=no
DNS1=192.168.1.1
DNS2=192.168.1.2
1
2
3

# 方法二

centos中有一套专门的工具nmcli来管理网络问题,参考文档有:

使用nmcli来改变域名:

  1. nmcli connection show:查看当前网络。
  2. nmcli con mod eth0 ipv4.dns "114.114.114.114 8.8.8.8"
  3. nmcli con up eth0

# firewalld和docker冲突

参考资料:Centos7/8 firewall 和 docker 冲突解决 (opens new window)

centos7/8 自带防火墙是firewalld。firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。当你使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后再启动 或者重启 firewalld ,你就需要重启 Docker 进程了。

解决办法是将firewalld换成iptables:

#查看firewalld是否启用
systemctl status firewalld
#停止firewalld
systemctl stop firewalld
#禁用firewalld(否则重启系统后会再次启动)
systemctl disable firewalld
systemctl disable firewalld.service
#如果要是开启需要使用如下命令
systemctl enable firewalld
#屏蔽firewalld
systemctl mask firewalld
#取消屏蔽
systemctl unmask firewalld
#查看是否安装iptables
yum list installed | grep iptables-services
#如果没安装则安装下
yum install iptables-services -y
#重启iptables
systemctl restart iptables
#设置开机自启
systemctl enable iptables
#重启docker
systemctl restart docker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

注意:

  • systemctl disable是在/etc/systemd/system/目录下删除相应的符号链接(链接的是/usr/lib/systemd/system/这个目录中的文件)。
  • systemctl mask 同上面不同的是前者只是删除符号链接,mask则会建立一个指向/dev/null的符号链接。

# Yum问题

# fastestmirror

# 出现场景

yum命令出现Loaded plugins: fastestmirror。

# 解决办法

fastestmirror是yum的一个加速插件,这里是插件提示信息是插件不能用了。需要把它关闭:

  1. 在/etc/yum/pluginconf.d/fastestmirror.conf配置文件中,将enabled=1改为enabled=0。
  2. 在/etc/yum.conf配置文件中,将plugins=1改为plugins=0。
  3. 重启系统。

# 离线安装

有时候项目的服务器是不能直接连网,这时要装软件就好麻烦的,需要在一台centos上把软件装好,然后把缓存包拷贝到目标服务器安装,需要使用下面步骤:

下面是在本地能联网的服务器上操作:

  1. 安装yumdownloader来下载RPMs:

    yum install yum-utils -y

  2. 下载createrepo:

    yum install --downloadonly --downloaddir=/home/createrepo createrepo

  3. 下载其他第三方软件,这里以docker举例:

    yum install --downloadonly --downloaddir=/home/docker docker-ce docker-ce-cli containerd.io

  4. 将上面下载的缓存打包:

    tar -zcvf docker.tar.gz /home/docker tar -zcvf createrepo.tar.gz /home/createrepo

下面是在离线目标服务器上安装:

  1. 解压缓存包

    tar -xvf docker.tar.gz tar -xvf createrepo.tar.gz

  2. 安装createrepo

    rpm -ivh *.rpm

  3. 使用createrepo来使用之前的缓存来创建包信息:

    sudo createrepo /home/rootuser/docker

  4. 配置本地yum源,可以新建一个local.repo。

    [local]
    name=local
    baseurl=file:///home/rootuser/docker # 软件包所在的目录
    enabled=1
    gpgcheck=0
    
    # gpgcheck=1
    # gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 # 本地yum源密钥
    
    1
    2
    3
    4
    5
    6
    7
    8
  5. 安装docker。如果安装过程中出现is not signed提示信息,需要在yum后面加上--nogpgcheck参数。

    sudo yum install docker-ce docker-ce-cli containerd.io

注意yum也有自身的缓存(/etc/yum.conf):

  1. cachedir为缓存路径,默认值是/var/cache/yum/$basearch/$releasever
  2. keepcache=1,默认值为0,意味安装完成后删除包。

# 国内镜像

  • docker安装镜像地址:

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 权限问题

# sudo命令找不到

解决在sudo下命令找不到的情况:

  1. 编辑文件/etc/sudoers,将Defaults env_reset改为Defaults !env_reset。
  2. 编辑用户根目录下的配置文件.bashrc,并追加

    alias sudo='sudo env PATH=$PATH'

  3. source ~/.bashrc。

# 文件操作

# 合并文件夹

cp -frap source/* target/
1