为什么要用Docker运行Centos呢?
最近在研究私服架设,买的虚拟机有其他的业务不能满足架设要求,大部分搭建都需要MySQL5.6、PHP5.x、PHP7.x等环境,等等那么为什么不用Docker来安装环境呢? 这是一个好问题,因为还需要安装宝塔、还要满足端口的要求。
用Docker安装Centos可以很轻松的得到一个纯净的Centos系统,可以SSH、安装宝塔、相当于就是一个完整系统了。
拉取镜像:
docker pull centos:centos7
# 安装docker的主机最好是centos7的,不然可能会不能使用运行镜像:
# docker命令方式
# --privileged 给予特权模式
# --name 你想要命名的名字
# -p 522:22 将ssh的22端口映射到主机的522端口
# /usr/sbin/init 初始化
docker run -d --name=centos7 --privileged -p 522:22 centos:centos7 /usr/sbin/init配置SSH:
这个镜像只含基础功能,默认没有安装SSH,所以还无法通过IP:522端口进行远程访问。
由于CentOS官方已全面停止维护CentOS Linux项目,公告指出 CentOS7和8在2024年6月30日停止技术服务支持,导致CentOS系统源已全面失效,比如安装宝塔等等会出现网络不可达等报错,解决方案是更换系统源。输入以下命令:
# 进入容器
docker exec -it centos7 bash
# centos7已经停止维护了,需要换源
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
# 安装SSH
yum install -y openssh-server
# 修改root密码
# 输入密码的时候不可见确认输入了就行
passwd root
# 启动ssh服务
systemctl start sshd.service
# ssh开机启动
systemctl enable sshd.service
# 查看ssh状态
systemctl status sshd.service修改SSH配置文件
SSH默认不允许root用户通过密码进行登录,需要修改配置文件:/etc/ssh/sshd_config
vi /etc/ssh/sshd_config
# 修改PermitRootLogin和PasswordAuthentication并去除注释#
PermitRootLogin yes
PasswordAuthentication yes
# 保存
按一下esc
然后输入:wq
# 重启SSH服务
systemctl restart sshd远程访问:
通过cmd或者xshell等其他客户端工具进行访问。
ssh root@you-ip 522Docker compose模板
services:
ltcq:
image: centos:centos7
container_name: centos7 #容器名字
command: /usr/sbin/init
privileged: true
restart: always #重启策略
ports: #开放端口
- "522:22"
- "81:81"
- "9001:9001"
volumes:
- /etc/localtime:/etc/localtime:ro
- ./data:/data #需要映射进容器的文件