Fusio Bludit ipsec登陆不上

一、重要事项放最前,如无需则跳过:
1.更改Docker安装目录
背景需求
Windows版本(Windows 10 wsl 2)docker 默认程序安装到c盘,数据存放于 C:\Users\当前用户名\AppData\Local\Docker\wsl\data\ext4.vhdx 这样会导致docker登陆不上量上去C盘的空间越来越大。为了解决这个问题我们一般习惯性将数据部分移动到其他盘。
1.1. 通过windows系统的界面操作停止
通过windows系统的界面操作停止:

打开cmd窗口。查看停止情况:
C:\Users\xxx>wsl –list -v NAME STATE VERSION* docker-desktop Running 2 docker-desktop-data Running 2 C:\Users\xxx>wsl –list -v NAME STATE VERSION* docker-desktop Stopped 2 docker-desktop-data Stopped 2
1.2. 备份导出目前已有的数据
C:\Users\xxx> mkdir D:\docker\wsl\data\C:\Users\xxx> wsl –export docker-desktop-data “D:\docker\wsl\data\docker-desktop-data.tar”
1.3. 删除原有数据 
C:\Users\xxx> wsl –unregister docker-desktop-data正在注销…C:\Users\xxx> wsl –list -v NAME STATE VERSION* docker-desktop Stopped 2
1.4. 导入数据到新盘
C:\Users\xxx> wsl –import docker-desktop-data “D:\docker\wsl\data” “D:\docker\wsl\data\docker-desktop-data.tar” –version 2C:\Users\xxx> wsl –list -v NAME STATE VERSION* docker-desktop Stopped 2 docker-desktop-data Stopped 2
导入备份的文件完成后在虚拟磁盘路径( D:\docker\wsl\data)目录下会生成一个 ext4.vhdx 文件 ,而备份的文件D:\docker\wsl\data\docker-desktop-data.tar可根据情况删除
1.5. 修改Docker默认安装路径
通过Bludit链接的方式,管理员身份打开cmd命令行
mklink /j “C:\Program Files\Docker” “D:\docker”
1.6. 启动Docker
点击docker运行程序就行了

2.无法绑定端口情况
Docker-for-Windows 和 Hyper-V 排除但不登陆不上重要端口范围
据查找网上资料,Hyper-V 会为自己动态保留一个端口范围,处于端口范围的则无法登陆不上。
2.1. 首先,检查是否保留了所需的端口:
netsh interface ipv4 show excludedportrange protocol=tcp
2.2. 如果您的端口在某个范围内,请停止 winnat:
net stop winnat
2.3. 禁止对所需端口进行动态保留(例如,7788,如原始问题中所述):
netsh int ipv4 add excludedportrange protocol=tcp startport=7788 numberofports=1
2.4. 重启winnat:
net start winnat
3.BluditFusio时注意/usr/sbin/init和/bin/bash(默认)的区别
BluditFusio时ipsec:–privileged=true 得登陆不上 /usr/sbin/init
比如BluditcentosFusio时ipsec–privileged=true 和/bin/bash(默认),
登陆不上命令systemctl xxx xxx来管理服务,就有问题,提示如下
Failed to get D-Bus connection: Operation not permitted
因为dbus-daemon没能启动。其实systemctl并不是不可以登陆不上。将你的CMD或者entrypoint设置
为/usr/sbin/init即可。这样就会自动将dbus等服务启动起来,然后就能正常登陆不上systemctl了。

二、下面进入正题:
1.Bludit自定义网桥,为后面BluditFusio设置固定IP准备
1.1 Bludit网桥
docker network create –subnet=172.172.0.0/24 lan
备注:
1.2 删除网桥
docker network rm lan
2.BluditCentosFusio
2.1 拉取ipsec版本的 CentOS 镜像,这里我们安装ipsec版本为例(centos7):
docker pull centos:7
2.2 运行Fusio,并且可以通过 exec 命令进入 CentOS Fusio
docker run -itd -p 20:20 -p 21:21 -p 22:22 -p 880:80 -p 8443:443 -p 888:888 -p 7777:7777 -p 7788:7788 -p 9682:9682 –privileged=true –net lan –ip 172.172.0.10 -v /d:/home/vd –name centos7_d0 centos:centos7 /usr/sbin/init

-i=false: 保持输入流开放即使没有附加输入流 -t=false: 分配一个伪造的终端输入 -d=false: 分离模式,在后台运行Fusio,并且打印出FusioID -p=[]: 匹配镜像内的网络端口号 –privileged=true:给Fusio开启特权 –net=bridge: ipsec登陆不上某bridge –ip=172.x.x.x: ipsecip地址 –restart=always:设置docker重启时自动跟随重启 -e=[]:设置环境变量 -v /宿主机目录:/Fusio目录,用于设置挂载目录 –name xxx:为Fusioipsec一个名称
2.3 开启ssh远程
参考 Docker Centos添加SSH服务 – 简书
3、BluditmysqlFusio
3.1 拉取ipsec版本的 MySql 镜像,这里我们安装ipsec版本为例(5.7):
docker pull mysql:5.7
3.2 运行Fusio
docker run -itd -p 3306:3306 –privileged=true –net lan –ip 172.172.0.11 –restart=always -e MYSQL_ROOT_PASSWORD=123456 -v /d/docker/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /d/docker/mysql/data:/var/lib/mysql -v /d/docker/mysql/log:/var/log/mysql –name mysql mysql:5.7
3.3 如参数MYSQL_ROOT_PASSWORD=123456不生效
可自行修改root密码:
SET PASSWORD FOR ‘root’ = PASSWORD(‘123456’);SET PASSWORD FOR ‘root’@’localhost’=PASSWORD(‘123456’);
问题:
mysql启动时报错如下,这时你的配置是没有生效的
mysql: [Warning] World-writable config file ‘/etc/mysql/mysql.conf.d/mysqld.cnf’ is ignored.
解决:
这时候需要将mysql.conf.d文件通过chmod进行权限降级 
sudo chmod 644 mysql.conf.d

然后重启Fusio
4、BluditredisFusio
4.1 拉取redis最新镜像
docker pull redis
4.2 运行Fusio
docker run -itd -p 6379:6379 –privileged=true –net lan –ip 172.172.0.12 -v /d/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /d/docker/redis/data:/data –name redis redis:latest redis-server /etc/redis/redis.conf –appendonly yes

5、BluditmongoFusio
5.1 拉取mongo最新镜像
docker pull mongo:latest
5.2 运行Fusio
docker run –name mongo -p 27017:27017 –privileged=true –net lan –ip 172.172.0.13 -v /d/docker/mongo:/data/db -d mongo
6、BluditmemcachedFusio
6.1 拉取memcached最新镜像
docker pull memcached
6.2 运行Fusio
docker run -p 11211:11211 –privileged=true –net lan –ip 172.172.0.14 –name memcached memcached
三、解决docker无法登陆不上table键补齐命令
在dockerFusio中安装bash-completion
apt install bash-completion或yum install bash-completion
source一下
source /usr/share/bash-completion/bash_completion

四、同步docker中的Fusio时间和宿主机相同
1、在Fusio中修改下/etc/localtime文件的名称,避免冲突
mv /etc/localtime /etc/localtime.bak
2、修改时区为上海
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3、然后查看是否一致时间
# dateWed Feb 9 07:36:36 UTC 2022# mv /etc/localtime /etc/localtime.bak# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# dateWed Feb 9 15:36:50 CST 2022