本次使用ESXI的群晖进行操作,第一root方便,第二没有重要数据保存,第三出现故障可以恢复快照。
连接SSH,端口22,使用winscp,连接后Ctrl+P访问putty
使用系统自带的镜像列表下载fusengine/apaxy,这个安装后是黑色风格,我们将要修改一下。
进入管理员权限:sudo su,输入密码
docker run -t -i fusengine/apaxy /bin/bash
上步骤失败,本次参考教程https://www.cnblogs.com/bruce1992/p/16504001.html
后续想能否直接修改这个tar,首先导出这个镜像为 fusengine_apaxy_latest.tar,然后修改fusengine_apaxy_latest.tar\10185c54964509925b10f482b07c387e79168522a68abcac99e13570f2f18abc\app\theme和htaccess。
保存,上传,测试。
测试失败,继续步骤4,使用系统自带的镜像安装容器,端口84。
6.使用putty 运行docker ps -a|grep apaxy,获取到容器id,如81d40109edda。
7.可以查看目前web中的文件,使用putty:docker exec -it 81d40109edda ls /app/web
7.创建一个路径,在群晖的根目录,注意不能用文件管理器,用winscp,创建一个:/tmp/apaxy_xinmeng
8.拖拽文件入内,如theme,.htaccess到/tmp/apaxy_xinmeng
9.拷贝文件夹进入容器:docker cp /tmp/apaxy_xinmeng/*.* 81d40109edda:/app/web
10.以上操作确实拷贝成功了,但是只有文件,没有包含子文件夹,搜索了docker cp和cp不一样,没有比如覆盖或者包含子目录的参数供选择。所以换个思路。
11.调试容器 docker inspect 81d40109edda,找到/app/web目录所在的位置 "/volume1/@docker/volumes/9053ab7fe90e482f860db4f5c5ef99f79c6f2b10b9b4a652364a0783b92e3a31/_data"。
12.winscp进入以上路径,手动覆盖需要修改的文件。
13.因为权限问题,需要先修改允许访问群晖的root账号和密码:
群晖nas设置root用户密码(篇首语:本片段由小常识网(cha138.com)小编整理) 1、启用ssh登录 – 这里建议修改端口以防止恶意登录。 2、使用shell工具链接 3、切换至root用户 sudo -i – 密码为登录时密码 4、修改权限 cd /etc/ssh chmod 755 sshd_config 5、修改配置文件 vi /etc/ssh/sshd_config 5、1输入 i 进入编辑模式 – 底部会显示INSERT 5、2 修改配置 找到这个,将前面的#号删除 PermitRootLogin prohibit-password 5、3 推出编辑模式 按“esc”键退出编辑模式,输入“:wq”保存 6、重启系统 reboot 7、切换至root用户 sudo -i – 密码为登录时密码 8、修改root密码 synouser --setpw root 密码 输入命令后回车即可,到此时root密码已经修改完毕
14.操作完成之后,修改winscp中的账户名为root,在新建站点窗口编辑这个记录。
15.继续第11步,失败,在目录中没有找到theme
16.继续查找,发现路径/volume1/@docker/btrfs/subvolumes/03b8f036634d715f2da4260364054d507d4e8cfaacf307edad6fbb4deca26119/app中就是实际需要的路径,覆盖之。
17.测试失败,测试新办法。先把目录复制进容器,而不是*.*,然后再想办法移动目录包括子目录和覆盖。
18.docker cp /tmp/app/ cb02ff57a35f:/app/app,外部复制到docker内部,/app/app路径很关键,因为后边收尾需要用app,复制并替换的时候不能改名,如果只用一个/app,会导致无法覆盖已存在文件。如果使用其他的如,/xinmeng/app,会因为目录不存在无法写入。
19.docker exec -it cb02ff57a35f cp -rf /app/app/ /,内部传输
20.尝试:docker exec -it 70a6e451dad3 cp -rf /app/app/theme /app
docker exec -it 70a6e451dad3 cp -i /app/app/.htaccess /app/.htaccess
21.第二十条错误,改为第19条,注意最后的空格和斜杠很重要!代表根目录!
22.发现theme下的图标没有过去,21的基础上再加一条docker exec -it da46c6b1a5ad cp -rf /app/app/theme /app/web
23.Ctrl+F5刷新,发现图片无法加载,了解是文件权限问题,putty输入:docker exec -it cb02ff57a35f chmod -R 777 /app ,访问正常
24.docker commit -m="这是apaxy的绿联云版本,提供了更丰富的UI设计。" -a="馨梦" cb02ff57a35f xinmeng/apaxy
25.成品完成,导入到绿联云也可运行,最好可以创建一个Docker官网账号,就可以发布到互联网了。
总结:
创建/tmp/app/文件夹,拷贝入theme和htaccess,把htaccess重命名为.htaccess
docker cp /tmp/app/ 1075b0c58198:/app/app,外部复制到docker内部 (cb02ff57a35f是由docker ps获取得到)
docker exec -it 1075b0c58198 cp -rf /app/app/ /,内部传输
docker exec -it 1075b0c58198 chmod -R 777 /app 获取权限
停止套件docker服务,注意不是docker容器,然后删除路径配置文件config.v2.json中的/etc/apache2/vhost.d 和 /var/log/apache2,删除后重启docker服务,而不是docker容器!否则配置文件会自动还原。删除后提交。(这一步的目的是删除两条必填的映射)
docker commit -m="这是apaxy的绿联云版本,提供了更丰富的UI设计。" -a="馨梦" cb02ff57a35f zdbit/apaxy:20230405
在镜像列表导出zdbit/apaxy:20230405,发布到Docker官网。
发布到docker官方
docker commit -m="这是apaxy的绿联云版本,提供了更丰富的UI设计。" -a="馨梦" 1075b0c58198 zdbit/apaxy docker login 输入账号密码 docker push zdbit/apaxy
发布到docker官方(带版本号)
docker commit -m="这是apaxy的绿联云版本,提供了更丰富的UI设计。" -a="馨梦" 1075b0c58198 zdbit/apaxy:20230405 docker login 输入账号密码 docker push zdbit/apaxy:20230405
评论列表:
1.停止服务,删除config.v2.json中的/etc/apache2/vhost.d 和 /var/log/apache2,启动服务
2.docker cp /tmp/app/ 5da3bcf83d69:/app/app
3.docker exec -it 5da3bcf83d69 cp -rf /app/app/ /
4.docker exec -it 5da3bcf83d69 chmod -R 777 /app
5.docker commit -m="这是apaxy的绿联云版本,提供了更丰富的UI设计。" -a="馨梦" 5da3bcf83d69 zdbit/apaxy:20230405
6.docker push zdbit/apaxy:20230405
1.docker login --username=9088*****@qq.com registry.cn-beijing.aliyuncs.com
2.docker commit -m="这是apaxy的绿联云版本,提供了更丰富的UI设计。" -a="馨梦" 5da3bcf83d69 registry.cn-beijing.aliyuncs.com/zdbit/apaxy:20230405
3.docker push registry.cn-beijing.aliyuncs.com/zdbit/apaxy:20230405
区别仅仅是每个镜像前面加了推送网址。
docker commit -m="这是virtual-dsm的绿联云版本,来自kroese/virtual-dsm" -a="馨梦" 04acee434b55 zdbit/virtual-dsm:20230408
docker push zdbit/virtual-dsm:20230408
docker commit -m="绿联云一键root工具 By Xinmeng" -a="馨梦" ec7c9a48793c zdbit/ugreen_root:20230809
docker push zdbit/ugreen_root:20230809