本文最后更新于197 天前,其中的信息可能已经过时,如有错误请发送邮件到
2871065713@qq.com

1、首先用下面命令安装docker
sudo apt update #!!!一定要update不然拉取docker报错
sudo apt -y install docker.io
2、拉取pikachu镜像
sudo docker pull hub.rat.dev/8023/pikachu-expect:latest
#直接docker search pikachu是不行的,会connection reset(看下面图二)
#第三方 Hub 反代,常用于解决“被重置/超时/限流”,直接拉取会connection refused或connection reset或connection refused(如第一条)。
#499764c8dc6b和6dd9d74f5fa7时间比较长,等待即可。
#这个也是非常慢的,100kb/s级,但是好歹能下。

4、拉取成功以后打上tag,否则运行不了,运行即可
#打上tag
sudo docker tag $(sudo docker images --format '{{.Repository}}:{{.Tag}}' \
| grep -E '^(dockerpull\.com|hub\.fgit\.ml|hub\.rat\.dev)/8023/pikachu-expect:latest$' | head -n1) \
8023/pikachu-expect:latest
#运行pikachu
sudo docker run -d --name pikachu \
-p 127.0.0.1:8765:80 \
--restart unless-stopped \
8023/pikachu-expect:latest
#出现一串乱码就是成功了,例如我的是09d3077d4ca5129f91747cbe8dea8fb1c5b9eb101237527b1f91fc80dda691




5、关于关机后开机问题
重启或关机再启动以后,运行docker run命令会报错

这是因为第一次构建运行以后已经存在pikachu容器,名称冲突,有三个方法:
①、直接启动
# 看看它现在是什么状态
sudo docker ps -a | grep pikachu
# 如果是 Exited/Created:启动它
sudo docker start pikachu
# 想重启
sudo docker restart pikachu
# 看启动是否正常
sudo docker logs --since=10m pikachu
#直接执行sudo docker start pikachu就行,出现pikachu就是成功。
②、删除旧的,重新构建
sudo docker rm -f pikachu
sudo docker run -d --name pikachu \
-p 127.0.0.1:8765:80 \
--restart unless-stopped \
8023/pikachu-expect:latest

③、改名构建新的
#直接使用下面命令即可
sudo docker run -d --name pikachu2 \
-p 127.0.0.1:8766:80 \
8023/pikachu-expect:latest
6、关于可能会出现的错误
暂时发现有时候直接输入127.0.0.1:8765可能会出现connection reset,只需在前面加上http://即可(http://127.0.0.1:8765/)。
性能问题:docker命令执行以后,虽然运行结果正常,但是马上访问依然不行,这可能是宿主机性能问题,等待1-3分钟再次访问就行。
7、pikachu的初始化
在docker中新拉取pikadb容器
sudo docker run -d --name pikadb \
-e MYSQL_ROOT_PASSWORD=pikachu123 \
-e MYSQL_DATABASE=pikachu \
hub.rat.dev/library/mysql:5.7 || \
sudo docker run -d --name pikadb \
-e MYSQL_ROOT_PASSWORD=pikachu123 \
-e MYSQL_DATABASE=pikachu \
hub.fgit.ml/library/mysql:5.7
新建网络并把两个容器接上去
#新建并添加
sudo docker network create pikachu-net || true
sudo docker network connect pikachu-net pikadb 2>/dev/null || true
sudo docker network connect pikachu-net pikachu 2>/dev/null || true
#确认是否在同一个网络
sudo docker inspect -f '{{.Name}} -> {{json .NetworkSettings.Networks}}' pikadb pikachu
#验证解析
sudo docker exec -it pikachu bash -lc '
getent hosts pikadb
apt-get update >/dev/null 2>&1 && apt-get install -y -qq default-mysql-client >/dev/null 2>&1
mysql -hpikadb -uroot -ppikachu123 -e "SHOW DATABASES;" | cat
'


修改配置文件
# 先把配置拷出来
sudo docker cp pikachu:/var/www/html/inc/config.inc.php ./config.inc.php
# 用编辑器改这四项
nano ./config.inc.php #!!!注意,此时要使用root账户
放回容器并重启
sudo docker cp ./config.inc.php pikachu:/var/www/html/inc/config.inc.php
sudo docker restart pikachu

直接点击安装即可
