Docker容器与虚拟化技术:OpenEuler 使用 docker-compose 部署 DashDot

本文详细描述了在OpenEuler环境下部署DashDot服务进行内网穿透以及部署Cpolar进行网络穿透的过程,包括设置privileged参数、docker-compose配置、容器创建及问题解答,如privileged的作用和dockerrun-v选项的区别。
摘要由CSDN通过智能技术生成

目录

  一、实验

1.环境

2.OpenEuler 部署 DashDot

3.OpenEuler 部署 Cpolar (内网穿透)

4.固定DashDot公网地址

二、问题

1.privileged参数作用

2.使用docker-cli如何创建DashDot容器

3.Docker run -v 的 rw 和 ro 模式有哪些区别

4.Cpolar 作用


  一、实验

1.环境

(1)主机

表1  主机

系统架构版本IP备注
LinuxopenEuler22.03 LTS SP2

192.168.204.145(动态)

192.168.204.141(静态)

192.168.204.142(静态)

docker25.0.3
docker-compose2.24.5
dashdot5.8.3
cpolar (客户端)3.12服务器端 3.22

(2)查看系统版本

[root@localhost ~]# cat /etc/os-release

e4d8bd1e19174f7ebec18a7c53fb3c2a.png

(3) 查看网络ip 

[root@localhost ~]# ip addr


 

 (4) 查看docker版本 

[root@localhost ~]# docker --version

d00ab0ec09264683a2035688aee10fcd.png

(5)检查docker compose版本

[root@localhost ~]# docker compose version

(6)查看docker进程

[root@localhost ~]# docker ps

2.OpenEuler 部署 DashDot

(1)官网

https://github.com/MauriceNino/dashdot

最新版为5.8.3

(2)拉取DashDot镜像

[root@localhost ~]# docker pull mauricenino/dashdot

查看镜像

[root@localhost ~]# docker images | head -1 ;docker images | grep dashdot
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
mauricenino/dashdot   latest    955efb8c44bf   8 weeks ago    212MB

(3)创建部署目录

[root@localhost ~]# mkdir -p /data/dashdot
[root@localhost ~]# cd  /data/dashdot

(4)编辑docker-compose.yaml文件

[root@localhost dashdot]# vim docker-compose.yaml

version: '3.9'
services:
  dashdot:
    image: mauricenino/dashdot
    restart: always
    container_name: dashdot
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 8987:3001
    volumes:
      - /etc/os-release:/etc/os-release:ro
      - /proc/1/ns/net:/mnt/host_ns_net:ro
    privileged: true

(5)使用docker compose方式快速创建Dashdot容器

[root@localhost dashdot]#  docker compose up -d

(6)检查Dashdot容器状态

确保Dashdot容器正常启动

CONTAINER ID   IMAGE                 COMMAND                   CREATED          STATUS          PORTS                                       NAMES
2a93c3e5c38d   mauricenino/dashdot   "docker-entrypoint.s…"   51 seconds ago   Up 50 seconds   0.0.0.0:8987->3001/tcp, :::8987->3001/tcp   dashdot

(7)检查Dashdot容器运行日志

确保Dashdot服务正常运行

[root@localhost dashdot]# docker compose logs  |grep 3001
dashdot  | listening on *:3001
dashdot  |     port: 3001,

(8)本地访问DashDot服务

http://192.168.204.141:8987/

识别出CPU ,内存,硬盘等信息

切换深色模式 (Dark Mode)

CPU 查看所有核心 (Show All Cores)

3.OpenEuler 部署 Cpolar (内网穿透)

(1) 官网

https://www.cpolar.com

(2)一键脚本安装命令

[root@localhost opt]# curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 21833  100 21833    0     0  24576      0 --:--:-- --:--:-- --:--:-- 24559
info: Installing Cpolar 3.3.12 for x86_64
Downloading Cpolar archive: http://static.cpolar.com/downloads/releases/3.3.12/cpolar-stable-linux-amd64.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7249k  100 7249k    0     0  8527k      0 --:--:-- --:--:-- --:--:-- 8518k
info: Extract the Cpolar package to /tmp/tmp.ky6mXG8BCO and prepare it for installation.
Downloading Cpolar demo config file: http://static.cpolar.com/downloads/cpolar.demo.yml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   186  100   186    0     0   4641      0 --:--:-- --:--:-- --:--:--  4769
Downloading Cpolar service config file: http://static.cpolar.com/downloads/cpolar.service
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   384  100   384    0     0   9944      0 --:--:-- --:--:-- --:--:-- 10105
Downloading Cpolar service@ config file: http://static.cpolar.com/downloads/cpolar@.service
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   380  100   380    0     0   8500      0 --:--:-- --:--:-- --:--:--  8636
rm: 无法删除 '/etc/systemd/system/cpolar.service.d/10-donot_touch_multi_conf.conf': No such file or directory
rm: 无法删除 '/etc/systemd/system/cpolar@.service.d/10-donot_touch_multi_conf.conf': No such file or directory
info: Systemd service files have been installed successfully!
warning: The following are the actual parameters for the cpolar service startup.
warning: Please make sure the configuration file path is correctly set.
# /etc/systemd/system/cpolar.service
[Unit]
Description=Cpolar Service
Documentation=https://www.cpolar.com/docs
After=network.target nss-lookup.target

[Service]
User=nobody
NoNewPrivileges=true
ExecStart=/usr/local/bin/cpolar start-all -dashboard=on -daemon=on -config=/usr/local/etc/cpolar/cpolar.yml -log=/var/log/cpolar/access.log
Restart=on-failure
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target

installed: /usr/local/bin/cpolar
installed link: /usr/bin/cpolar
installed: /usr/local/etc/cpolar/cpolar.yml
installed: /var/log/cpolar/
installed: /var/log/cpolar/access.log
installed: /var/log/cpolar/error.log
installed: /etc/systemd/system/cpolar.service
installed: /etc/systemd/system/cpolar@.service
removed: /tmp/tmp.ky6mXG8BCO
info: Cpolar 3.3.12 is installed.
You may need to execute a command to remove dependent software: dnf remove curl unzip
Please execute the command: systemctl enable cpolar; systemctl start cpolar

(3)开机自启

[root@localhost opt]# sudo systemctl enable cpolar

(4)启动cpolar服务

[root@localhost opt]# sudo systemctl start cpolar

(5) 监听服务端口

[root@localhost ~]# netstat -antlp

[root@localhost ~]# netstat -antlp | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      39747/cpolar: worke

(6)浏览器访问

http://localhost:9200

登录仪表盘 (输入注册的账号密码)

(7)配置DashDot公网地址

隧道名称:可自定义命名,注意不要与已有的隧道名称重复
协议:选择http
本地地址:8987 (本地访问的地址)
域名类型:免费选择随机域名
地区:选择China Top

(8)查看隧道列表

(9)在线隧道列表

查看所生成的公网访问地址,有两种访问方式,一种是http 和https

1)http
http://40da23df.r2.cpolar.top

2) https
https://40da23df.r2.cpolar.top

(10)使用Cpolar https公网地址 访问

这里的地址是随机的,24小时会发生变化,主机重启也会变化

https://40da23df.r2.cpolar.top

4.固定DashDot公网地址

(1)官网

https://dashboard.cpolar.com/reserved

(2)设置

保留

(3)重启主机

这时主机地址依然可访问

原随机访问地址已失效

查看在线隧道列表(随机地址已更新)

(4)编辑隧道列表

更新

1)域名类型
选择二级子域名

2)Sub Domain
填写保留成功的二级子域名

(5)查看在线隧道列表

随机地址已更新为固定的二级子域名名称的域名

1)http
http://dashdot.vip.cpolar.cn

2) https
https://dashdot.vip.cpolar.cn

(6)访问固定的公网https地址

https://dashdot.vip.cpolar.cn

重启主机后观察(初始流量比较大)

二、问题

1.privileged参数作用

(1)作用

大约在0.6版,privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。

2.使用docker-cli如何创建DashDot容器

(1)命令

docker  run  -d  \
  -p 8987:3001 \
  -v /etc/os-release:/etc/os-release:ro \
  -v /proc/1/ns/net:/mnt/host_ns_net:ro \
  --privileged \
  mauricenino/dashdot

3.Docker run -v 的 rw 和 ro 模式有哪些区别

(1)区别

1)不指定(默认)
权限同rw

2)ro
文件:容器内不能修改,会提示read-only
文件夹:容器内不能修改、新增、删除文件夹中的文件,会提示read-only

3)rw
文件:不管是宿主机还是容器内修改,都会相互同步;但容器内不允许删除,会提示Device or resource busy;宿主机删除文件,容器内的不会被同步
文件夹:不管是宿主机还是容器内修改、新增、删除文件,都会相互同步

4.Cpolar 作用

(1)作用

1)内网穿透
内网穿透是一种网络技术,可以让外部计算机访问内部网络,解决家庭或者公司内部网络无法从公网访问的问题。它的原理是通过将内部网络的数据流量“穿透”到公网上,使得外部计算机可以访问内部网络中的设备。

2)cpolar
使用cpolar内网穿透工具,实现在公网上监测服务器、网站、应用等,异地来监测自己的服务器,并防止网站被攻击,

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值