docker rm -f bt
删除宝塔容器就能消除所有影响(网站数据不会丢失,因为数据在主机的/www
目录,不在容器内),再执行mv /www /www.old
重命名/www
文件夹,就能再用下面的方法重新安装宝塔。# 安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#(x86_64)启动一个 CentOS 7 容器
#(你也可以换成别的,但是 CentOS 7 是宝塔的参考发行版,选 CentOS 7 才能让宝塔的“极速安装”功能生效)
#(“极速安装”功能仅限x86_64,因为宝塔没有给arm64编译rpm包,所以arm64还是要编译安装)
docker run -d --restart=always --name bt -it --network host --tmpfs /tmp:exec --tmpfs /run -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /www:/www centos:7 /sbin/init
#(arm64)启动一个 OpenEuler 容器
#(不建议 arm64 使用 CentOS 7 容器,因为 gcc 版本太低,编译 memcached 的时候会失败)
#(所以这里换成华为的 OpenEuler 容器)
docker run -d --restart=always --name bt -it --network host --tmpfs /tmp:exec --tmpfs /run -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /www:/www openeuler/openeuler:20.03 /sbin/init
# 进入容器
docker exec -it bt bash
# (在容器内执行)修复安装软件包时出现 Unable to get systemd shutdown inhibition lock 的问题
[ -e /usr/bin/docker ] || sed -i 's/%__transaction_systemd_inhibit/#%__transaction_systemd_inhibit/g' /usr/lib/rpm/macros
# (在容器内执行)禁用不需要的服务
[ -e /usr/bin/docker ] || systemctl disable auditd.service systemd-hostnamed.service systemd-networkd-wait-online.service NetworkManager-wait-online.service NetworkManager.service
[ -e /usr/bin/docker ] || systemctl stop systemd-hostnamed.service systemd-networkd-wait-online.service NetworkManager-wait-online.service NetworkManager.service
[ -e /usr/bin/docker ] || systemctl set-default multi-user.target
exit
docker restart bt
docker exec -it bt bash
# (在容器内执行)安装宝塔
yum install -y wget cronie && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
# 停止
docker stop bt
# 启动
docker start bt
# 重启
docker restart bt
网站根目录位于/www
,在容器外也能访问。如果要在容器外替换/www
文件夹,请先停止容器,否则替换不会生效。
--restart=always
)。--network=host
),所以宝塔开启的任何服务都能直接被外界访问。
我看见在宝塔中装Docker的
又看见Docker中装宝塔的