群辉Docker安装Centos & 开启SSH!

前言

为了正常的使用Linux的systemctl工具。但是,该工具是需要docker系统的privilege权限的,而且需要在开启docker的时候就赋予权限。而极空间既没有开放命令行操作,也没有开放privilege权限,所以我们也就无法使用命令行在docker开启的时候赋予privilege权限了。

从上图中可以看出,尽管我们的Docker容器显示自己的身份是root,但是依旧有systemctl命令我们无法执行。下面,我就来给大家提供一下这种问题的解决方法。

准备环境介绍

DSM版本:DSM7.1.1
群晖IP地址:10.168.2.192 (远程进入群辉终端界面需要这个地址)
docker映像文件:centos:centos7.9.2009
超级终端:SecureCRT (远程软件)

步骤

1.群辉已安装docker。控制面板-终端机和SNMP-启用ssh功能,端口号默认22,我这里设置的是22653。

2.远程进入docker宿主机,切换至root权限,docker pull拉取镜像制定镜像

xz.li@Home:/$ sudo -i                               #切换至系统root权限
Password: 
root@Home:~# 
root@Home# docker pull centos:centos7.9.2009        #从镜像仓库中拉取或者更新指定镜像centos7       
centos7.9.2009: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:centos7.9.2009
docker.io/library/centos:centos7.9.2009


root@Home# docker run -itd --name=centos --privileged=true -p 4999:22 centos:centos7.9.2009 /usr/sbin/init

--name=centos #表示创建名为centos的容器
– privileged=true #表示使用特权模式,使用这个参数的时候,容器内的root有用真正的root权限
4999:22 #将容器系统的22端口映射至宿主机的4999端口

3.执行后群辉docker界面会出现已创建的容器centos。点击详细信息可以查看做的映射端口

4.点击终端机-新增-bash。输入passwd,重新配置root密码。

5.安装镜像源

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

6.安装常用工具及ssh服务,显示Complete!完成安装 

yum install -y openssh-server vim lrzsz wget gcc-c++ pcre pcre-devel zlib zlib-devel ruby openssl openssl-devel patch bash-completion zlib.i686 libstdc++.i686 lsof unzip zip screen net-tools initscripts

7.启用ssh

systemctl start sshd             #启动ssh服务
netstat -antup | grep sshd       #查看ssh端口号
systemctl sshd restart           #重启ssh工具
systemctl status sshd.service    #查看ssh服务状态

systemctl enable sshd.service    #设置ssh服务开机自启  

8.使用终端工具连接容器系统

9.结束。愉快的在环境上搭建自己喜欢的平台吧。

参考网友们对–privileged参数权限的理解:

1.对外开放无认证的Docker API是非常危险的行为,生产环境应当禁止对外开放
2.--privileged能不用尽量不要用
3.--privileged,权限全开,不利于宿主机安全
4.内网环境的话自己捣鼓捣鼓

 

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注