利用febootstrap制作Docker centos镜像

利用febootstrap制作Docker centos镜像,第1张

1.安装基本的工具
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 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/928819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-17
下一篇 2022-05-17

发表评论

登录后才能评论

评论列表(0条)

保存