分类: 电脑技术
作者: admin

docker部署与网络配置

1.安装docker

 XML/HTML代码

  1. #安装 Docker
  2. curl -fsSL https://get.docker.com | sh
  3. #安装 docker-compose
  4. 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
  5. 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 模式(支持多实例)

XML/HTML代码
  1. wget https://gitee.com/shenzhen-sweet-sugar/ttnode-auto-deploy/raw/master/setup_docker.sh  
  2. chmod +x setup_docker.sh  
  3.   
  4. # 第一次运行  
  5.   
  6. # --eth 网卡  
  7. # --cache_dir 缓存目录  
  8. # --ttnode_count  ttnode docker实例数  
  9. ./setup_docker.sh --eth=eth0 --cache_dir=/mnt/ttnode --memory=1g --cpus=1.5 --ttnode_count=2   
  10.   
  11. # 之后运行用下面这行即可,保证 mac 地址不变  
  12. ./setup_docker.sh # 直接读取配置文件  
  13. 配置文件在 /etc/ttnode/config.txt # 包含 容器名 hostname mac地址等信息  

以上为官方参考脚本。