yum install epel-release
yum clean all
yum install febootstrap
2.离线安装febootstrap
centos7上没有febootstrap,需要从 centos上复制或者自行下载
# febootstrap下载地址链接:https://download.csdn.net/download/liuyunshengsir/85364049
rpm -Uvh *.rpm --nodeps --force
3.制作镜像(在物理机上执行)
# 1.创建安装文件夹
mkdir /home/centos7
# 2.执行指令
# 带有桌面的版本
febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim -i openssh-server -i openssh-clients -i tar -i p7zip -i net-tools -i "GNOME Desktop" -i tigervnc-server -i tigervnc-server-module -i gnome-classic-session -i gnome-terminal -i nautilus-open-terminal -i control-center -i liberation-mono-fonts -i bzip2 centos7.6 /home/centos7 http://mirrors.163.com/centos/7.6.1810/os/x86_64/
#(-i 安装package, centos7 *** 作系统版本,/home/centos7安装目录,最后是源地址)
# 不带镜像的版本
febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim -i openssh-server -i openssh-clients -i tar -i p7zip -i net-tools -i tigervnc-server -i tigervnc-server-module -i nautilus-open-terminal -i control-center -i liberation-mono-fonts -i bzip2 centos7.9 /home/centos7 https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/
### 3.执行结果如下
Complete!
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
4. load镜像
tar -c .|docker import - liuyunshengsir/centos7.9:v1
5. 制作ssh可登陆
vim Dockerfile
FROM liuyunshengsir/centos7.9:v1
MAINTAINER liuyunshengsir
WORKDIR /root
USER 0
RUN echo "root:123456" | chpasswd \
&& echo "root ALL=(ALL) ALL" >> /etc/sudoers
EXPOSE 22
CMD ["/usr/sbin/init"]
编辑好后执行
docker build -t liuyunshengsir/centos7.9:ssh .
然后可以上传到dockerhub,也可直接私信我自行下载
特权模式启动容器docker run --privileged -ti centos7:ssh /usr/sbin/init
进去之后可以查看版本
bash-4.2# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
6.制作vnc服务
#复制vncserver@:1.service即可
cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
6.1 vncserver@:1.service内容
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l -c "/usr/bin/vncserver %i"
PIDFile=/home//.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
6.2 vncserver@:1.service内容修改为root
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
6.3 使服务生效
vncpasswd #为root用户设置密码,为123456
systemctl daemon-reload
systemctl start vncserver@:1.service
systemctl enable vncserver@:1.service
systemctl status vncserver@:1.service
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)