CentOS 8 优化及常用软件安装(Docker)

1.更换yum/dnf
## 添加源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
## 清理缓存
dnf clean all
## 重建缓存
dnf makecache
dnf repolist

若执行上述无效,执行

cd /etc/yum.repos.d

## 备份
cp CentOS-Base.repo CentOS-Base.repo.bak
cp CentOS-AppStream.repo CentOS-AppStream.repo.bak
cp CentOS-Extras.repo CentOS-Extras.repo.bak
## 修改repo文件
sed -i 's/mirrorlist=/#mirrorlist=/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo
sed -i 's/#baseurl=/baseurl=/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo
sed -i 's/http:\/\/mirror.centos.org/https:\/\/mirrors.aliyun.com/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo
2.卸载阿里云盾
## 卸载阿里云盾监控
wget http://update.aegis.aliyun.com/download/uninstall.sh
sh uninstall.sh
wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh
sh quartz_uninstall.sh
## 删除目录残留
pkill aliyun-service
rm -fr /etc/init.d/agentwatch /usr/sbin/aliyun-service
rm -rf /usr/local/aegis*
rm -rf /usr/local/share/aliyun-assist*
3.安装常用软件
## 安装epel源
dnf install http://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
## 安装常用软件
dnf -y install htop
4.设置系统语言
# 查看字符集
locale -a
# 若没有指定字符安装
dnf install -y langpacks-zh_CN
# 设置语言为中文
sed -i 's/LANG=en_US.UTF-8/LANG=zh_CN.UTF-8/' /etc/locale.conf
# 加载配置生效
source /etc/locale.conf 
5.添加swap文件
dd if=/dev/zero of=/swapfile bs=1M count=4096 &>/dev/null
mkswap -f /swapfile &>/dev/null
chmod 600 /swapfile
swapon /swapfile &>/dev/null
echo "/swapfile    swap    swap    default   0 0" >> /etc/fstab
6.添加DNS地址
cat >> /etc/resolv.conf << EOF
nameserver 114.114.114.114
nameserver 223.5.5.5
EOF
7.配置sshd
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i 's@PermitEmptyPasswords no@PermitEmptyPasswords no@' /etc/ssh/sshd_config
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config

# 关闭欢迎打印
sed -i 's/#PrintMotd yes/PrintMotd no/' /etc/ssh/sshd_config
sed -i 's/#PrintLastLog yes/PrintLastLog no/' /etc/ssh/sshd_config
# 重启ssh服务
systemctl restart sshd.service
8.修改欢迎打印
vi /etc/motd 
# 修改内容保存即可
9.美化控制台颜色
## 修改.bashrc文件
cat >> .bashrc << EOF
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
EOF
# 使配置生效
source .bashrc
10.卸载cockpit
# cockpit为web管理控制台,若不使用卸载即可
dnf -y remove cockpit
11.安装Docker
## 卸载旧版本
yum remove docker docker-client \
docker-client-latest  docker-common \
docker-latest  docker-latest-logrotate \
docker-logrotate  docker-selinux \
docker-engine-selinux  docker-engine
## 安装依赖组件
dnf install -y yum-utils  device-mapper-persistent-data  lvm2
## 添加yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
## 安装Docker
yum -y install docker-ce 
# 若执行安装命令报错,需要单独安装依赖
dnf install http://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
dnf -y update
dnf install docker-ce docker-ce-cli
# 设置docker开机自启动
systemctl enable docker     
systemctl start docker
# 验证安装 
docker version
# 配置Docker镜像加速器
vi /etc/docker/daemon.json 
{
    "registry-mirrors": [
            "https://tueulghe.mirror.aliyuncs.com",
            "https://registry.docker-cn.com",
            "http://hub-mirror.c.163.com",
            "https://docker.mirrors.ustc.edu.cn"
        ]
}

# 重新载入配置
systemctl daemon-reload      
systemctl restart docker    

## 开启远程访问(若需要)
vi /usr/lib/systemd/system/docker.service    #修改docker服务配置文件
# 在ExecStart=/usr/bin/dockerd 后添加
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
12.安装docker-compose
# 下载compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 文件及目录授权
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
13.安装redis
## 创建目录及配置文件
mkdir -p /home/redis/conf
touch /home/redis/conf/redis.conf
## 编辑配置文件
vim /home/redis/conf/redis.conf 

redis.conf 配置

## 启动容器

docker run -d \
--name redis \
-p 6379:6379 \
--restart always \
--privileged=true \
-v /home/redis/data:/data \
-v /etc/localtime:/etc/localtime \
-v  /home/redis/conf/redis.conf:/etc/redis/redis.conf \
redis redis-server /etc/redis/redis.conf \
--appendonly yes --requirepass "password" 
14.安装MySQL
## 创建目录及配置文件
mkdir -p /home/mysql/conf
touch /home/mysql/conf/my.cnf
## 编辑配置文件
vim /home/mysql/conf/my.cnf 

my.cnf 配置文件

## 启动容器
docker run -d \
--name mysql \
--restart=always \
-p 3306:3306 \
-v /home/mysql/logs:/logs \
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /etc/localtime:/etc/localtime \
-v /home/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=password mysql
## 连接MySQL
docker exec -it mysql mysql -uroot -p
## 新增账号
CREATE USER '账号'@'作用域' IDENTIFIED BY '密码';       -- 作用域: % 表示可以任意主机登录, localhost 本机
## 账号授权
GRANT ALL ON *.* TO '账号'@'作用域';
## 修改密码插件(mysql_native_password)
ALTER USER '账号'@'作用域' IDENTIFIED WITH mysql_native_password BY '密码';
## 刷新权限
FLUSH PRIVILEGES; 
15.安装php
## 创建目录及配置文件
mkdir -p /home/php
touch /home/php/php.ini
## 修改配置
vim /home/php/php.ini

php.ini 配置文件

## 启动php容器
docker run \
-p 9000:9000 \
--name php -idt \
--restart=always \
--privileged=true  \
-v /home/nginx/data:/www \
-v /etc/localtime:/etc/localtime \
-v /home/php/conf/php.ini:/usr/local/etc/php/php.ini php:fpm
## 配置插件(若需要)
# php 添加 pdo_mysql 组件支持MySQL数据库操作
docker exec -it php docker-php-ext-install pdo pdo_mysql
16.安装nginx
## 创建目录及配置文件
mkdir -p /home/nginx/conf
touch /home/nginx/conf/nginx.conf
## 修改配置
vim /home/nginx/conf/nginx.conf

nginx 配置文件

## 启动容器 
docker run -d \
-p 80:80 \
-p 443:443 \
--name nginx \
--link php:php \
--restart=always \
--privileged=true \
-v /home/nginx/conf:/etc/nginx \
-v /etc/localtime:/etc/localtime \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/conf/ssl:/etc/nginx/ssl \
-v /home/nginx/data:/usr/share/nginx/html \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
## 添加域名及SSL支持
## 在在挂载目录 /home/nginx/conf/vhost/ 下创建虚拟主机(vhost) [domain].conf配置文件
mkdir -p /home/nginx/conf/vhost
touch /home/nginx/conf/vhost/domain.conf   (文件名称不定,最好保持域名一致)
## 配置Vhost 文件
vim /home/nginx/conf/vhost/domain.conf

vhost.conf 配置文件

## 导入SSL证书至 /home/nginx/conf/ssl 目录下,需自行通过运营商申请证书文件
## 这里使用acme.sh生成证书
wget -O -  https://get.acme.sh | sh
.acme.sh/acme.sh --issue --alpn -d domain.com
## 导入证书到nginx目录
.acme.sh/acme.sh --install-cert -d domain.com --key-file /home/nginx/conf/ssl/domian.com.key --fullchain-file /home/nginx/conf/ssl/domain.com.crt --reloadcmd "docker exec -it nginx nginx -s reload"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357