docker下部署clash和chatgpt-next-web
docker下部署clash和chatgpt-next-web
一、所需材料
- docker 和 docker-compose
- chatgpt 的 key
- clash 的订阅地址(本人不提供任何关于此类的服务,请自行解决)
- 如图三个文件(见下文):
手动进行备份,并记录其中的数据库备份文件的文件名,后续会用到
根据自身旧版16.4禅道的docker运行命令分析,确保旧版禅道数据都映射在了宿主机中,那么就可以直接删除旧版容器
(此步骤为避免新容器覆盖宿主机目录的保险操作,路径结合自身情况调整)
mv /home/ubuntu/zentaopms /home/ubuntu/zentaopms_old
mv /home/ubuntu/zentaomysql /home/ubuntu/zentaomysql_old
左边路径为旧版禅道映射在宿主机中的目录,右边路径为重命名目录,根据自身情况进行修改
该设置会导致docker容器中网络出现各种问题,例如:容器中无法访问外部网络等,如果你了解原理和设置可以继续往下看,不过 Docker与防火墙问题 这篇文章提到了可以通过临时关闭ESLinux来避免,不过我没测试
通过命令iptables-save
查看防火墙状态:
那么, 如果不希望docker映射的端口对外开放怎么办呢?
在宿主机中运行下列命令进行检查:
ping [容器ip]
可以ping通telnet 127.0.0.1 [映射的web端口]
连接正常telnet 127.0.0.1 [映射的mysql端口]
连上后立刻被切断,提示:"Connetion closed by foreign host"可以断定是mysql服务的问题
容器日志报错信息:"ln: failed to create symbolic link '/opt/zbox/tmp/mysql/mysql.sock': File exists"
通过容器日志可以看出是使用ln
命令创建软链接的时候出错,并导致后续代码无法执行
如何检查docker内部端口是否连通
docker exec -it <container_name> /bin/bash
nc
命令检查端口情况:nc -vz <ip_address> <port>
nc -vz 192.168.0.1 8080
succeeded!
字样,表示端口可以连接通。curl
命令检查端口情况:curl -s -I <ip_address>:<port>
curl -s -I 192.168.0.1:8080
docker 外部和内部网络不通,怎么排查?
如何检查docker容器是否正确配置了GW,DNS,IP?
docker如何检查指定容器的网络模式
可以使用docker inspect命令查看指定容器的网络模式,例如:
$ docker inspect --format '{{.HostConfig.NetworkMode}}' container_name_or_id
如何检查docker容器的路由情况?
要检查docker容器的路由情况,可以使用命令行工具docker exec
。 例如,可以使用以下命令检查容器内的路由表:
docker exec -it <container_name> ip route
也可以使用以下命令检查容器内的默认网关:
docker exec -it <container_name> ip route show default
如何查看docker指定容器的运行命令?
方法一:
使用docker inspect
命令:
docker inspect [OPTIONS] CONTAINER_ID
例如:
docker inspect -f '{{.Config.Cmd}}' CONTAINER_ID
方法二:
使用docker ps
命令:
docker ps --no-trunc -f id=CONTAINER_ID
例如:
docker ps --no-trunc -f id=CONTAINER_ID