docker部署与网络配置
1.安装docker
XML/HTML代码
- #安装 Docker
- curl -fsSL https://get.docker.com | sh
- #安装 docker-compose
- curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
2.设置docker
sudo systemctl enable docker #开机启动docker
sudo systemctl start docker #启动docker
sudo groupadd docker #建立docker组
sudo usermod -aG docker $USER #将当前用户加入 docker 组
sudo vim /etc/systemd/system/multi-user.target.wants/docker.service #添加下面仓库地址到此文件
ExecStart=/usr/bin/dockerd --registry-mirror=https://ckq4qobq.mirror.aliyuncs.com #使用阿里云加速
sudo systemctl daemon-reload #重新加载daemon
sudo systemctl restart docker #重启docker
3.验证docker
docker run --name webserver -d -p 81:80 nginx
#docker从仓库pull下nginx镜像并命名为webserver,此镜像以后台模式,81端口映射宿主机80端口运行
#如果下载速度较慢,可能国内镜像加速未成功。
$ firefox #打开firefox浏览器
#输入 http://IP:81 看到nginx欢迎界面表示搭建成功
4.部署docker管理程序
docker管理面板Portainer安装与使用
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /portainer_data:/data --name prtainer portainer/portainer
安装后http://IP:9000 登陆
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce (官方全平台最新版)
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data chenyingzi/portainer-ce-cn (amd64中文版)
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce (amd64最新中文)
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce:linux-arm64 (arm64最新中文)
SipleDocker 一个简单的Docker控制面板
docker run -d -p 8080:4050 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name SimpleDocker registry.cn-hangzhou.aliyuncs.com/seven-tao/simple-docker:0.0.4
浏览器访问 http://IP:8080 登陆
账户名:admin 密码: SimpleDocker2020
EasyDockerWeb 简单的Docker控制面板
docker run -it -d -p 3000:3000 --restart=always -e EDW_USERNAME='admin' -e EDW_PASSWORD='admin' -v /var/run/docker.sock:/var/run/docker.sock qfdk/easydockerweb
浏览器访问http://IP:3000
5.设置docker独立IP地址
- 通过ifconfig命令确定物理网卡的名称为ens32,以及网段netmask 255.255.255.0,应该为192.168.1.0/24
-
route -n命令获取到网关为192.168.1.1
-
使用下面命令创建网卡,名称为macnet
docker network create -d macvlan --subnet 192.168.1.0/24 --gateway 192.168.1.1 -o parent=ens32 -o macvlan_mode=bridge macnet
-
docker network ls命令查看网卡名称,名称为macnet的网卡已经添加成功
6.设置docker容器(甜糖)
部署alpine命令
docker run --privileged -ti --net macnet --ip 192.168.1.10 -d --name alpine /usr/sbin/init
部署甜糖命令(因为甜糖是根据mac/hostmane生成绑定ID的,docker的mac每次重启会改变,导致ID变化,故设置固定mac)
docker run -v /mnt/ttnode:/mnts -d --name ttnode --hostname ttnode --net=macnet --ip 192.168.1.10 --dns=114.114.114.114 --mac-address 4C:CC:6A:17:7A:80 -i -t --privileged=true --restart=always tiptime/ttnode
加载 /dev/sdb1到/mnt/tt ,然后部署多个甜糖镜像
fdisk -l #查看磁盘
fdisk /dev/sdb #分区
mkfs.ext4 /dev/sdb #格式化硬盘
mount /dev/sdb1 /mnt/tt #加载硬盘到mnt的tt目录
修改系统配置文件实现开机自动挂载硬盘。
blkid /dev/sdb1 #找/dev/sdb1分区UUID
vi /etc/fstab #编辑fstab为了实现开机自动挂载
UUID=xxxx /mnt/ttnode ext4 defaults,nofail 0 0
#把xxxx替换成刚才/dev/sdb1分区的UUID,在fstab第三行末尾回车,添加一行,将前面修改好的命令粘贴到fstab第四行,保存。
或者添加 /dev/sdxxx /mnt/xxx/ ext4 defaults 0 1 也可以实现开机自动挂载。
改挂载这步同样可以通过winscp或者finalshell操作。
部署多个甜糖
docker run -v /mnt/tt/ttnode:/mnts -d --name ttnode --hostname ttnode --net=macnet --ip 192.168.1.10 --dns=114.114.114.114 --mac-address 4C:CC:6A:17:7A:80 -i -t --privileged=true --restart=always tiptime/ttnode
docker run -v /mnt/tt/ttnode1:/mnts -d --name ttnode1 --hostname ttnode1 --net=macnet --ip 192.168.1.11 --dns=114.114.114.114 --mac-address 4C:CC:6A:17:7A:81 -i -t --privileged=true --restart=always tiptime/ttnode
docker run -v /mnt/tt/ttnode2:/mnts -d --name ttnode2 --hostname ttnode2 --net=macnet --ip 192.168.1.12 --dns=114.114.114.114 --mac-address 4C:CC:6A:17:7A:82 -i -t --privileged=true --restart=always tiptime/ttnode
查看甜糖绑定码
docker logs ttnode
docker logs ttnode1
docker logs ttnode2
部署甜糖自动收取星愿定时提现容器
docker run -it --name=ttnodeclient -e TTNODE=0 -v /mnt/tt/ttxy:/mnt/data/ttnode --net=host --restart=always --privileged waterlemons2k/ttnode
运行 ./token 命令登录,按照提示输入手机号和短信验证码
进入容器查看运行状态
docker exec -it ttnode /bin/bash
apt-get update
apt-get install nload htop
如需单开甜糖,只需要用桥接,使用宿主机的IP即可。
docker run -v /mnt/ttnode:/mnts -d --name ttnode --hostname ttnode --net=host -i -t --privileged=true --restart=always tiptime/ttnode
docker run -itd -v /mnt/ttnode:/mnts --name ttnode --hostname ttnode --net=host --privileged=true --restart=always tiptime/ttnode
官方参考 快速部署脚本(官方) 自动收取 物理机直接部署(x86和ARM机器)
7.设置docker容器(网心云)
参考:https://hub.docker.com/r/onething1/wxedge
1.host网络模式单实例
docker run -d --name=wxedge --restart=always --privileged --net=host --tmpfs /run --tmpfs /tmp -v /mnt/data/wxedge_storage:/storage:rw onething1/wxedge
2.macvlan多实例
docker run -itd --name=wxedge --net=macnet --ip=192.168.1.10 --privileged=true --tmpfs /run --tmpfs /tmp -v /mnt/data/wxedge_storage:/storage:rw --restart=always onething1/wxedge
3.一键获取macvlan父接口
ip route|grep default
4.限速脚本(非必须,可以路由设置限速)
项目地址: https://github.com/magnific0/wondershaper
# 清除限速
/root/wondershaper/wondershaper -c -a eth0
# 限制上行速度
/root/wondershaper/wondershaper -a eth0 -u 30000
# 显示限速情况
/root/wondershaper/wondershaper -s -a eth0
5.设备绑定
打开浏览器(推荐谷歌浏览器),输入局域网ip:18888(ip可以通过路由器管理终端页面查看到),比如192.168.1.10:18888
进阶:通过脚本部署 maclvan 模式(支持多实例)
- wget https://gitee.com/shenzhen-sweet-sugar/ttnode-auto-deploy/raw/master/setup_docker.sh
- chmod +x setup_docker.sh
- # 第一次运行
- # --eth 网卡
- # --cache_dir 缓存目录
- # --ttnode_count ttnode docker实例数
- ./setup_docker.sh --eth=eth0 --cache_dir=/mnt/ttnode --memory=1g --cpus=1.5 --ttnode_count=2
- # 之后运行用下面这行即可,保证 mac 地址不变
- ./setup_docker.sh # 直接读取配置文件
- 配置文件在 /etc/ttnode/config.txt # 包含 容器名 hostname mac地址等信息
以上为官方参考脚本。