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

目录

一、实验

1.环境

[2.OpenEuler 部署 DashDot](#2.OpenEuler 部署 DashDot)

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

4.固定DashDot公网地址

二、问题

1.privileged参数作用

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

[3.Docker run -v 的 rw 和 ro 模式有哪些区别](#3.Docker run -v 的 rw 和 ro 模式有哪些区别)

[4.Cpolar 作用](#4.Cpolar 作用)


一、实验

1.环境

(1)主机

表1 主机

|-------|----------------|---------------|-------------------------------------------------------------|-----------|
| 系统 | 架构 | 版本 | IP | 备注 |
| Linux | openEuler | 22.03 LTS SP2 | 192.168.204.145(动态) 192.168.204.141(静态) 192.168.204.142(静态) | |
| | docker | 25.0.3 | | |
| | docker-compose | 2.24.5 | | |
| | dashdot | 5.8.3 | | |
| | cpolar (客户端) | 3.12 | | 服务器端 3.22 |

(2)查看系统版本

bash 复制代码
[root@localhost ~]# cat /etc/os-release

(3) 查看网络ip

bash 复制代码
[root@localhost ~]# ip addr

(4) 查看docker版本

bash 复制代码
[root@localhost ~]# docker --version

(5)检查docker compose版本

bash 复制代码
[root@localhost ~]# docker compose version

(6)查看docker进程

bash 复制代码
[root@localhost ~]# docker ps

2.OpenEuler 部署 DashDot

(1)官网

bash 复制代码
https://github.com/MauriceNino/dashdot

最新版为5.8.3

(2)拉取DashDot镜像

bash 复制代码
[root@localhost ~]# docker pull mauricenino/dashdot

查看镜像

bash 复制代码
[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)创建部署目录

bash 复制代码
[root@localhost ~]# mkdir -p /data/dashdot
[root@localhost ~]# cd  /data/dashdot

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

bash 复制代码
[root@localhost dashdot]# vim docker-compose.yaml
bash 复制代码
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容器

bash 复制代码
[root@localhost dashdot]#  docker compose up -d

(6)检查Dashdot容器状态

确保Dashdot容器正常启动

bash 复制代码
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服务正常运行

bash 复制代码
[root@localhost dashdot]# docker compose logs  |grep 3001
dashdot  | listening on *:3001
dashdot  |     port: 3001,

(8)本地访问DashDot服务

bash 复制代码
http://192.168.204.141:8987/

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

切换深色模式 (Dark Mode)

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

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

(1) 官网

bash 复制代码
https://www.cpolar.com

(2)一键脚本安装命令

bash 复制代码
[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)开机自启

bash 复制代码
[root@localhost opt]# sudo systemctl enable cpolar

(4)启动cpolar服务

bash 复制代码
[root@localhost opt]# sudo systemctl start cpolar

(5) 监听服务端口

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

(6)浏览器访问

bash 复制代码
http://localhost:9200

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

(7)配置DashDot公网地址

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

(8)查看隧道列表

(9)在线隧道列表

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

bash 复制代码
1)http
http://40da23df.r2.cpolar.top

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

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

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

bash 复制代码
https://40da23df.r2.cpolar.top

4.固定DashDot公网地址

(1)官网

bash 复制代码
https://dashboard.cpolar.com/reserved

(2)设置

保留

(3)重启主机

这时主机地址依然可访问

原随机访问地址已失效

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

(4)编辑隧道列表

更新

bash 复制代码
1)域名类型
选择二级子域名

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

(5)查看在线隧道列表

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

bash 复制代码
1)http
http://dashdot.vip.cpolar.cn

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

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

bash 复制代码
https://dashdot.vip.cpolar.cn

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

二、问题

1.privileged参数作用

(1)作用

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

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

(1)命令

bash 复制代码
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)区别

bash 复制代码
1)不指定(默认)
权限同rw

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

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

4.Cpolar 作用

(1)作用

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

2)cpolar
使用cpolar内网穿透工具,实现在公网上监测服务器、网站、应用等,异地来监测自己的服务器,并防止网站被攻击,
相关推荐
桥田智能2 分钟前
气爪在自动化装配线中是如何应用的?
运维·自动化
MonkeyKing_sunyuhua4 分钟前
ubuntu22.04 docker-compose安装postgresql数据库
数据库·docker·postgresql
追风林36 分钟前
mac m1 docker本地部署canal 监听mysql的binglog日志
java·docker·mac
€☞扫地僧☜€2 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
茶馆大橘2 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud
其乐无涯2 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流2 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩2 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布2 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
紅色彼岸花2 小时前
第六章:DNS域名解析服务器
运维·服务器