绿联安装 CentOS8 容器

1. 创建容器

先在客户端安装容器,随后用 xshell 进入绿联的 ssh

绿联如何开启 ssh 参考视频;2023 年 11 月后,新版本的绿联直接把远程调试打开,给出的调试密钥就是 ssh 的密码。绿联的 ssh 端口是 922

执行如下命令,以特权模式创建一个 centos 容器,并将容器内的 22 端口映射给主机的 22222 端口;如果你是希望在 centos 容器上进行网络编程开发,请多映射几个端口,以免到时候没办法访问项目的尴尬情况!

bash
1
2
3
4
5
6
docker run -d \
-p 22222:22 \
--name centos \
--privileged=true \
centos:latest \
/usr/sbin/init

搞定了之后,进绿联客户端,停止容器运行,设置一个文件路径给容器内部,方便 docker 容器和 nas 资料互传(不设置也不是不行)

image-20230223192152276

注意,在客户端配置的时候,需要把所有能给的选项(-i -t 高级选项)全都勾上,避免 docker 安装的 centos 缺少权限;


回到绿联的 ssh 终端,用下面的命令进入容器内部

plaintext
1
docker exec -it centos /bin/bash

你也可以用客户端里面的终端功能,但是那个太简陋了,不太好用。既然都已经能 ssh 连上绿联了,那完全没必要用客户端;

当然,因为我们已经映射了 22 端口到绿联的 22222 端口,所以你直接用 ssh 链接这个 22222 端口即可进入 docker 安装的 centos。

plaintext
1
ssh root@绿联的IP -p 22222

1.1 判断是否成功以特权模式安装

plaintext
1
systemctl 

执行此命令,看看是否有如下输出。如果没有,代表没有成功以特权模式安装。systemctl 在 linux 中很常用,且开启容器的 ssh 也需要使用此命令!

image-20230223192918079

如果没能成功使用这个 systemctl 命令,请删除容器后,重试上面的步骤

2. 更新软件

docker 安装的 Centos 并没有虚拟机安装的那么完全,还需要我们进行软件源的配置操作

plaintext
1
yum update -y && yum upgrade -y

第一次执行此命令的时候,大概率会出现下面的报错(我在两个不同平台的 docker 里面启动的 centos 都遇到了这个问题,因为 docker 安装的 centos 是最小安装,所以缺少了 yum 源的配置项)

plaintext
1
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist

参考 Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist 博客,用下面的命令解决这个问题。

如果上面该博客链接无法打开,可以查看本站转载的原文

plaintext
1
2
3
4
5
cd /etc/yum.repos.d/

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*

sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

随后执行如下命令。创建缓存

plaintext
1
yum makecache

执行 makecache 后,系统会获取一些内容,然后我们重新执行如下命令

plaintext
1
yum update -y && yum upgrade -y

会进行一连串的更新,直到出现下面的 complete 窗口,代表成功!

image-20230223193425765

image-20230223193247217

3.ssh 链接

3.1 安装 passwd

一个 linux 系统,不能 ssh 链接可不行,我们需要更新一下内容,实现 ssh 链接

plaintext
1
yum install passwd

先安装 passwd 命令,设置 root 的密码

plaintext
1
passwd

会弹出来让你输入密码,盲敲就行

3.2 安装 vim 和 openssh

用下面的命令安装 vim 和 openssh

plaintext
1
yum install vim openssh-server openssh-clients -y

安装完毕后,修改 ssh 的配置文件(vim 的使用请百度)

plaintext
1
vim /etc/ssh/sshd_config

取消注释下面的字段即可开启 ssh

plaintext
1
2
3
4
5
6
7
Port 22
ListenAddress 0.0.0.0
ListenAddress ::

PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改好了之后,退出终端;

用下面的命令重启 ssh 服务,并设置开机启动 ssh

plaintext
1
2
systemctl restart sshd.service
systemctl enable sshd.service

如果一切正常的话,这两个命令应该什么都不会输出!

3.3 尝试 ssh 链接

因为我们把 docker 容器的 22 端口映射给了 nas 的 22222 端口,所以 ssh 的时候需要指定对应端口进行连接。

plaintext
1
ssh root@绿联的IP -p 22222

如果一切正常的话,会弹出来让你验证登录,到这里就是 ok 了

image-20230223194054648

3.4 配置 ls 命令颜色

plaintext
1
vim /etc/profile

在末尾添加如下字段

plaintext
1
2
3
export LS_OPTIONS='--color=auto'
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -lA'

随后重启容器即可

3.5 配置 yum 阿里源

备份原有源

plaintext
1
tar -zcvf CentOS-bk.tar.gz /etc/yum.repos.d/CentOS-*

看看本地的 centos 是什么版本

plaintext
1
cat /etc/redhat-release

我这里的版本是 8.5

plaintext
1
CentOS Linux release 8.5.2111

替换为阿里源

plaintext
1
2
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-8.repo

重新生成缓存

plaintext
1
2
yum clean all
yum makecache

image-20230223200200975

现在速度快多了!

开用!

后续的使用就不再多说拉!既然你想安装 centos,想必对 linux 的了解肯定比我多😂