noilinux打包docker文档
1. 首先我们需要到noi的网站下载镜像
2. 通过vmware或者其他方式安装好系统
5. 安装完成以后我们需要查看noilinu系统版本命令如下: 磁盘请使用40G
lsb_release -a 查看版本
4. 知道版本以后我们 查看 磁盘有多少 如果没有40G请你添加磁盘 通过vm挂载 进入系统输入命令查看磁盘有没有添加成功 命令如下
fdisk -l 查看磁盘
发现有一个叫dev/sdb的磁盘我们需要 把它分区
fdisk /dev/sdb 分区开始 按照提示进行输入
分区成功以后 通过 mkfs.ext4 分成文件系统格式
通过mount进行挂载 mount /dev/sdb1 /opt/
5. 我们通过tar命令就可以开始打包系统了
tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .
/proc、/sys、/run、/dev这几个目录都是系统启动时自动生成的!依赖与系统内核!
在进行tar打包时候,注意打包过程中的错误信息!如果有错误出现,要重新打包,
不然在通过docker构建进行时,会给出找不到命令行或其他类型的错误!通过容器构建镜像的命令:
6. 在tmp目录下面使用
cat system.tar | docker import - 镜像名称:版本
7. 完成以后通过docker images即可查看镜像
8. 完成以后 我们通过启动容器进去安装 vnc 和 supervisor
8.1 安装vnc
8.1.1 更新源
apt-get update
8.1.2 安装vnc和supervisor
apt-get install vnc4server supervisor -y
8.1.3 初始化vnc
vncserver 按照提示输入密码
8.1.4 删除第一个桌面
vncserver -kill :1
8.1.5 启动vnc
vncserver :1
8.1.6 查看是否启动成功
ss -tlunp 端口{5901}
8.1.7 配置我们自己的~/.vnc/ 记住这个目录一会有用
9. 配置supervisor{进程管理工具}
9.1.1 配置supervisor 主你需要配置的就是 /etc/supervisor/conf.d/
记住这个目录一会我们能用到
10. 保存当前容器状态为容器镜像命令:
docker commit -m "描述" -a "作者" -p 停止容器打包镜像 {容器name} 打包名称:打包版本
11. 因为我们刚刚打包应用程序的进程是启动不了我们需要一个脚本启动它
脚本内容: #!/bin/bash
/usr/bin/supervisord
12. 配置进程管理工具 需要管理的进程配置文件
配置内容: [program:vnc] #管理进程名称
directory=/root/ #命令执行目录
command=bash /opt/vnc.sh #执行的命令
autostart=true
user=root #执行以后
autorestart=true
startretries=100 #等级
redirect_stderr=true
stdout_logfile=/dev/null #日志输出目录
13. 编写vnc启动脚本
脚本内容: #!/bin/bash
rm /tmp/.X* -rf
vncserver :1
14 编写vncxstartup脚本
脚本内容: #!/bin/sh
# Uncomment the following two lines for normal desktop:
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
unset DBUS_SESSION_BUS_ADDRESS
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &
15. 编写dockerfile 因为我们这些脚本和配置文件都是在外面的我需要写一个dockerfile打包进去
dockerfile内容: FROM 刚刚打包的镜像
COPY vnc.conf /etc/supervisor/conf.d/
COPY xstartup ~/.vnc/
COPY vnc.sh /opt/
COPY entrypoint.sh /entrypoint.sh
RUN chmod 777 entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
16. 构建docker-images
命令: docker build -t 镜像名称:版本 .
17. 构建完成以后启动容器 端口映射出容器里面的5901端口到宿主机我们通过宿主机即可远程桌面
命令: docker run -it --name 容器名称 -p 5901:5901 -d 镜像名称
18. 这样子即可通过VNC远程查看我们的noilinux-docker容器桌面了