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内网穿透工具,实现在公网上监测服务器、网站、应用等,异地来监测自己的服务器,并防止网站被攻击,
相关推荐
许白掰1 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
B1nna2 小时前
Docker学习
学习·docker·容器
缘友一世2 小时前
网安系列【15】之Docker未授权访问漏洞
docker·容器
AmosTian8 小时前
【系统与工具】Linux——Linux简介、安装、简单使用
linux·运维·服务器
YC运维9 小时前
RIP实验以及核心原理
运维·网络·智能路由器
慕木兮人可9 小时前
Docker部署MySQL镜像
spring boot·后端·mysql·docker·ecs服务器
leo__52010 小时前
自动化运维:使用Ansible简化日常任务
运维·自动化·ansible
霖0010 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发
CodeWithMe10 小时前
【Note】《Kafka: The Definitive Guide》 第九章:Kafka 管理与运维实战
运维·分布式·kafka