1   docker的基础命令操作 命令 功能 注释 docker ps 列出当前正在运行的容器 docker ps -a 列出所有容器(包括已停止的容器) docker logs container_name 查看指定容器的日志 docker inspect container_name/image 获取指定容器或镜像的详细信息 docker exec -it container_name /bin/bash 进入指定容器的交互式终端 -i: 交互式操作 -t: 终端 -it:以交互式终端运行容器,例如 docker exec -it container_name bash docker stop container_name 停止一个或多个容器 docker rm container_name 删除一个或多个容器 docker rmi image-name:tag 删除一个或多个镜像 不加tag则会删除所有 docker run image-name --name container_name -d 启动一个新的容器并运行命令 docker start container_name 启动已停止的容器 docker restart container_name 重启一个容器 docker version 显示 Docker 客户端和守护进程的版本信息 docker network ls 列出所有 Docker 网络 docker volume ls 列出所有 Docker 卷 docker images ls 列出本地存储的所有镜像 docker compose -f docker-compose.yml up -d 启动多容器应用(从 docker-compose.yml 文件) -d:后台运行容器,例如 docker run -d ubuntu docker compose down 停止并删除由 docker-compose 启动的容器、网络等 docker info 显示 Docker 系统的详细信息 docker stats 显示容器的实时资源使用情况
2   使用apt仓库为Debian安装docker 2.1   添加Docker的官方GPG密钥 1 2 3 4 5 6 apt update apt install ca-certificates -y install -m 0755 -d /etc/apt/keyrings wget https://download.docker.com/linux/debian/gpg -O /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc
2.2   添加Docker的官方仓库 1 2 3 4 5 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME " ) stable" | \ tee /etc/apt/sources.list.d/docker.list > /dev/null apt update
2.3   安装Docker 1 apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
2.4   验证Docker版本 1 2 docker -v docker version
2.5   修改Docker镜像源 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 mkdir -p /etc/dockertee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.1ms.run", "https://docker.mybacc.com", "https://dytt.online", "https://lispy.org", "https://docker.xiaogenban1993.com", "https://docker.yomansunter.com", "https://aicarbon.xyz", "https://666860.xyz", "https://docker.zhai.cm", "https://a.ussh.net", "https://hub.littlediary.cn", "https://hub.rat.dev", "https://docker.m.daocloud.io" ] } EOF
2.6   重启相关服务 1 2 systemctl daemon-reload systemctl restart docker
3   Docker创建应用 3.1   搭建DataEase 请提前为宿主机安装好Docker以及配置好镜像源,这里不作介绍。
3.1.1   下载DataEase部署脚本。 最新的DataEase V1.x 部署脚本并解压(本文示例为v1.18.27版本)。
dataease-release-v1.18.27.tar.gz
和dataease-v1.18.27-online.tar.gz
这两个文件数据完全一致,随意下载,本人解压并比对过文件哈希值。
v2.x开源社区版不支持创建用户,代码层面写死只有一个admin账户,若有用户管理的需求,可以不用考虑v2.x版本或者考虑商业版的v2.x。
3.1.2   修改配置文件install.conf
安装模式模式修改为local
,端口这些自行根据需求改,如下配置文件是修改为8100。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 DE_BASE=/opt DE_PORT=8100 DE_ENGINE_MODE=local DE_DOCKER_SUBNET=172.19.0.0/16 DE_DOCKER_GATEWAY=172.19.0.1 DE_DORIS_FE_IP=172.19.0.198 DE_DORIS_BE_IP=172.19.0.199 DE_LOGIN_TIMEOUT=480 DE_INIT_PASSWORD=DataEase123456 DE_EXTERNAL_MYSQL=false DE_MYSQL_HOST=mysql DE_MYSQL_PORT=3306 DE_MYSQL_DB=dataease DE_MYSQL_USER=root DE_MYSQL_PASSWORD=Password123@mysql DE_MYSQL_PARAMS="autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true" DE_EXTERNAL_DORIS=false DE_DORIS_HOST=doris-fe DE_DORIS_PORT=9030 DE_DORIS_HTTPPORT=8030 DE_DORIS_DB=dataease DE_DORIS_USER=root DE_DORIS_PASSWORD=Password123@doris DE_EXTERNAL_KETTLE=false DE_CARTE_HOST=kettle DE_CARTE_PORT=18080 DE_CARTE_USER=cluster DE_CARTE_PASSWORD=cluster
3.1.2.1   不同安装模式的区别 DE_ENGINE_MODE=local 使用本地模式安装,DataEase 会自带 Doris 与 Kettle 组件,无需再做额外配置,但各组件均为单点,不具备高可用特性。 在此模式下,Excel 数据集、API 数据集以及定时同步的数据默认保存在自带的 Doris 组件中。
DE_ENGINE_MODE=simple 使用精简模式安装,系统不会额外安装 Doris 与 Kettle 组件,提供用户轻量级的应用系统,尤其是对接数据量较小的情况。 在此模式下,Excel 数据集或 API 数据集的相关数据存储在数据引擎中(默认配置自带的 MySQL 组件,用户可在系统管理界面配置数据引擎,数据引擎目前仅支持 MySQL 类型)。 注意:由于精简模式未配置 Kettle 与 Doris,故精简模式不提供定时同步模式。
3.1.3   安装DataEase 运行命令安装DataEase,并查看对应docker容器是否正常运行。
1 2 bash ./install.sh docker ps -a
3.1.4   创建DataEase的踩坑记录 3.1.4.1   doris-be容器状态一直为unhealthy 问题:doris-be容器状态一直为unhealthy,一直在尝试反复启动。docker logs doris-be
查看到如下日志输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 doris_role:be DEBUG >>>>>> FE_SERVERS=[fe1:172.19.0.198:9010] DEBUG >>>>>> BE_ADDR=[172.19.0.199:9050] DEBUG >>>>>> feIpArray = 172.19.0.198 DEBUG >>>>>> feEditLogPortArray = 9010 DEBUG >>>>>> masterFe = 172.19.0.198:9010 DEBUG >>>>>> be_addr = 172.19.0.199:9050 DEBUG >>>>>> Append the configuration [priority_networks = 172.19.0.0/24] to /opt/apache-doris/be/conf/fe.conf DEBUG >>>>>> registerMySQL = mysql -uroot -P9030 -h172.19.0.198 -e "alter system add backend '172.19.0.199:9050'" DEBUG >>>>>> registerShell = /opt/apache-doris/be/bin/start_be.sh & mysql -uroot -P9030 -h172.19.0.198 -e "show backends" | grep " 172.19.0.199 " | grep " 9050 " 10003 default_cluster 172.19.0.199 9050 -1 -1 -1 NULL NULL false false false 0 0.000 1.000 B 0.000 0.00 % 0.00 % 0.000 {"location" : "default" } java.net.NoRouteToHostException: No route to host (Host unreachable) {"lastStreamLoadTime" :-1,"isQueryDisabled" :false ,"isLoadDisabled" :false } 1 DEBUG >>>>>> The 0 time to register BE node, be_join_status=0 DEBUG >>>>>> run command /opt/apache-doris/be/bin/start_be.sh & DEBUG >>>>>> registered : 1 Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000' . ERROR 1105 (HY000) at line 1: errCode = 2, detailMessage = There is no scanNode Backend available.[10003: not alive] DEBUG >>>>>> The 1 time to check is_alive >>>>>> 1 ERROR 1105 (HY000) at line 1: errCode = 2, detailMessage = There is no scanNode Backend available.[10003: not alive]
可以查看上述日志输出提示Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000'.
原因:Doris作为分布式数据库,对于内存映射数量有要求,Linux系统默认参数值无法满足,例如PVE系统默认的vm.max_map_count=262144
。
解决方法1:请在运行doris容器的宿主机上,运行sysctl -w vm.max_map_count=2000000
命令设置vm.max_map_count
内核参数。若宿主机本身也是容器化的虚拟机,例如PVE的LXC容器,可以直接在PVE上运行命令修改参数。
解决方法2:换DataEase v2版本,v2系列不需要部署Doris。
3.1.4.2   在DataEase添加Excel数据集后,预览数据界面无法加载,并一直提示Access denied for user 'root@172.19.0.4'
原因:修改过install.conf
的MySQL和Doris的密码都会导致出现该故障。据5939的issue 反馈该问题在1.18.23已修复,但本人使用1.18.27版本部署,修改密码仍会出现该问题。
解决方法:不修改install.conf
的MySQL和Doris的密码,直接使用模板预设的默认密码完成部署。
4   Docker Desktop(Windows) 4.1   Docker Unexpected error 问题:无法启用Docker Desktop,提示报错Docker Unexpected error
。
原因:之前有安装并卸载过Docker Desktop。重新安装Docker Desktop有可能触发此问题。
解决方法:
1 2 3 wsl --unregister docker-desktop wsl --unregister docker-desktop-data
5   参考文献 [1] Docker Unexpected error[EB/OL]. https://github.com/docker/for-win/issues/14034 . [2] Install Docker Engine on Debian[EB/OL]. https://docs.docker.com/engine/install/debian/#install-using-the-repository . [3] DockerHub 国内加速镜像列表[EB/OL]. https://github.com/dongyubin/DockerHub . [4] Docker 容器使用[EB/OL]. https://www.runoob.com/docker/docker-container-usage.html . [5] [Question]配置doris数据源提示错误:Access denied for user 'root@172.19.0.4 ' (using password: YES)[EB/OL]. https://github.com/dataease/dataease/issues/5939 . [5] 安装模式[EB/OL]. https://dataease.io/docs/v1/installation/installation_mode/#11 .