diff --git a/.gitattributes b/.gitattributes index 7b94619..78bb66a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,3 +9,6 @@ *.tff binary *.woff binary *.woff2 binary +*.mp4 binary +*.webm binary +*.mov binary diff --git a/docs/.vuepress/navbar.ts b/docs/.vuepress/navbar.ts index d4bd0e5..435271a 100644 --- a/docs/.vuepress/navbar.ts +++ b/docs/.vuepress/navbar.ts @@ -59,6 +59,10 @@ export default defineNavbarConfig([ text: 'Linux 运维', link: '/ops/linux/', }, + { + text: 'Docker 运维', + link: '/ops/docker/', + }, ], }, { diff --git a/docs/.vuepress/notes.ts b/docs/.vuepress/notes.ts index a0797cf..b8e8818 100644 --- a/docs/.vuepress/notes.ts +++ b/docs/.vuepress/notes.ts @@ -142,6 +142,27 @@ const linux = defineNoteConfig({ } ] }) +const docker = defineNoteConfig({ + dir: 'ops', + link: '/ops/docker/', + sidebar: [ + { text: "Docker 运维笔记", link: "/ops/docker/" }, + { + text: "数据库相关", + prefix: "docker/", + items: [ + { text: "MongoDB 部署", link: "mongodb" }, + ] + }, + { + text: "其他服务", + prefix: "docker/", + items: [ + { text: "ETLCloud 部署", link: "ETLCloud" }, + ] + }, + ] +}) const web = defineNoteConfig({ dir: 'programming', link: '/programming/web/', @@ -163,5 +184,5 @@ const web = defineNoteConfig({ export default defineNotesConfig({ dir: 'notes', link: '/', - notes: [LeetCode, english, cPlusPlus, solidity, blockchain, linux, cryptography, web], + notes: [LeetCode, english, cPlusPlus, solidity, blockchain, linux, docker, cryptography, web], }) diff --git a/docs/notes/ops/docker/ETLCloud.md b/docs/notes/ops/docker/ETLCloud.md new file mode 100644 index 0000000..e36256d --- /dev/null +++ b/docs/notes/ops/docker/ETLCloud.md @@ -0,0 +1,78 @@ +--- +title: ETLCloud +createTime: 2025/12/24 17:13:36 +permalink: /ops/docker/ETLCloud/ +--- + +## 前置环境 +这里安装之前,需要先安装 mongodb 数据库,可以参考 [使用 Docker 部署 MongoDB](mongodb.md) + +## 安装 ETLCloud + +拉取社区版本镜像: +```bash +docker pull ccr.ccs.tencentyun.com/restcloud/restcloud-etl:V4.0 +``` + +### 部署容器 + +如果您已经运行过同名容器,请先删除: +```bash +docker rm -f restcloud-etl-V4.0 +``` + +使用以下命令进行部署(包含授权绑定、数据持久化和端口映射): +```bash +docker run -d \ + --restart=always \ + --privileged=true \ + --name restcloud-etl-V4.0 \ + --mac-address=01:D2:F4:18:B8:67 \ + -v /data/tomcat:/usr/tomcat \ + -p 9527:8080 \ + ccr.ccs.tencentyun.com/restcloud/restcloud-etl:V4.0 +``` + +**参数说明:** +- `--restart=always`: 容器退出时总是重启(如系统重启)。 +- `--privileged=true`: 赋予容器特权模式,确保初始化正常。 +- `--mac-address`: 固定 MAC 地址,用于绑定 License 授权(**注意:第一个字节必须为偶数,建议使用 02 开头**)。 +- `-v /data/tomcat:/usr/tomcat`: 将 Tomcat 目录挂载到宿主机,实现数据持久化。 +- `-p 9527:8080`: 访问端口映射,宿主机访问端口为 9527。 + +拷贝容器中的 tomcat 目录到主机上 +```bash +docker cp e0419ad8a2bf31743ec17368cf4098e293c36761842a7dcff8280fbc34195fba:/usr/tomcat /data/ +``` +删除之前创建的简单容器 +```bash +docker rm -f e0419ad8a2bf31743ec17368cf4098e293c36761842a7dcff8280fbc34195fba +``` +在 /data/tomcat 路径下,编辑ETLCloud mongo相关的配置文件,这里的信息参考之前创建的 MongoDB 实例。 +这里我额外修改了 server.port ,这里太容易和其他的服务端口冲突,所以这里修改为 9527。 +```bash +sudo vim ./webapps/ROOT/WEB-INF/classes/application.properties + +server.port=9527 +... +#集群服务器之间同步用的公共配置数据库,空表示和配置库一起 +spring.data.mongodb.host=127.0.0.1:27018 +spring.data.mongodb.repositories.enabled=true +#MongoDb的数据库认证用户名及密码,没有可以为空 +spring.data.mongodb.username=admin +spring.data.mongodb.password=admin +... +``` +然后可以启动容器,样例如下: +```bash +docker run -d --restart=always --restart=on-failure:5 --privileged=true --name restcloud-etl-V4.0 --mac-address=自定义mac地址 -v /home/tomcat:/usr/tomcat -p 8080:8080 镜像id +``` +具体命令,这里的MAC地址参数一定是要有的,不然每次重新创建之后MAC地址会变就需要重新生成SN码 + +这里的MAC地址不要和博主写一样的...自己随机一个或者随便写一个就行 +```bash +docker run -d --restart=always --restart=on-failure:5 --privileged=true --name restcloud-etl-V4.0 --mac-address=02:D2:00:00:00:67 -v /data/tomcat:/usr/tomcat -p 9527:8080 4a5c0ed2a5b2 +``` +然后访问 服务器IP:9527/restcloud/admin/login 就可以啦 + +后面的话就是去官网申请一个SN码,然后就可以开始使用啦。 \ No newline at end of file diff --git a/docs/notes/ops/docker/README.md b/docs/notes/ops/docker/README.md new file mode 100644 index 0000000..8b92f51 --- /dev/null +++ b/docs/notes/ops/docker/README.md @@ -0,0 +1,39 @@ +--- +title: Docker 部署运维 +createTime: 2025/12/24 16:39:34 +permalink: /ops/docker/ +--- + +欢迎来到 Docker 运维笔记!✨ + +在这里,我们将一起探索那些神奇的“小盒子”——Docker 容器。它们就像是装满惊喜的礼盒,把复杂的程序都整整齐齐地收纳在一起,是不是很有趣呢?♪ + +不管是部署数据库,还是搭建各种好玩的应用,只要有了这些小盒子,一切都会变得像魔法一样简单又优雅呢~真期待看到你在运维的道路上,也能像花朵一样绽放光彩呢。🌸 + +好啦,让我们开始这段美妙的旅程吧~如果遇到困难,这里会一直提供帮助的哦~ + +## 常用基础命令 🛠️ + +为了更顺畅地开启这段旅程,这里准备了一些常用的魔法指令: + +### 容器管理 +- `docker ps`:查看正在运行的小盒子。 +- `docker ps -a`:查看所有的小盒子(包括休息中的)。 +- `docker stop `:让小盒子暂时休息一下。 +- `docker start `:唤醒休息中的小盒子。 +- `docker rm `:送走不再需要的小盒子。 + +### 镜像管理 +- `docker images`:查看我们收集的所有魔法镜像。 +- `docker pull `:从云端下载新的魔法镜像。 +- `docker rmi `:清理不再需要的魔法镜像。 + +### 日志与调试 +- `docker logs -f `:实时查看小盒子里的悄悄话。 +- `docker exec -it /bin/bash`:亲自钻进小盒子里面看看。 + +## 部署清单 📋 + +- [MongoDB 部署魔法](./mongodb.md) +- 更多惊喜,敬请期待~✨ + diff --git a/docs/notes/ops/docker/mongodb.md b/docs/notes/ops/docker/mongodb.md new file mode 100644 index 0000000..813c3db --- /dev/null +++ b/docs/notes/ops/docker/mongodb.md @@ -0,0 +1,70 @@ +--- +title: 使用 Docker 部署 MongoDB +createTime: 2025/12/24 16:34:00 +icon: mdi:database +permalink: /ops/docker/mongodb/ +--- + +本教程将介绍如何使用 Docker 快速部署一个 MongoDB 实例。 + +## 在 Ubuntu 上部署 MongoDB:4.2 实例 + +我们先拉取 MongoDB:4.2 镜像: + +```bash +docker pull mongo:4.2 +``` + +创建一个目录用于存储 MongoDB 数据: + +```bash +mkdir -p /data/mongo/ +``` + +启动 MongoDB 容器: +```bash :wrap +sudo docker run --restart=always -itd --name mongo -p 27018:27017 -v /data/mongo/:/data/db mongo:4.2 --auth +``` +命令详解: +- `--restart=always`:容器重启时自动启动。 +- `-itd`:交互式模式运行容器,后台模式。 +- `--name mongo`:为容器命名为 mongo。 +- `-p 27018:27017`:将主机的 27018 端口映射到容器的 27017 端口。 +- `-v /data/mongo/:/data/db`:将主机的 /data/mongo/ 目录挂载到容器的 /data/db 目录,用于持久化存储数据。 +- `mongo:4.2`:使用 MongoDB:4.2 镜像。 +- `--auth`:启用身份验证功能。 + +进入 MongoDB 容器: +```bash +docker exec -it mongo mongo admin +``` + +### 在 MongoDB 容器中创建管理员用户 +先进入 admin 数据库 +```bash +use admin; +``` +创建管理员用户 admin, 密码 root, 角色为 root。 +```bash +db.createUser( { user: "root", pwd: "root", roles:['root'] }); +``` +退出 MongoDB 容器: +```bash +exit +``` +使用 root 用户进行登录 +```bash +docker exec -it mongo mongo admin -u root -p root +``` +这里还能创建一个 admin 用户,用密码 admin,角色为 readWriteAnyDatabase, dbAdminAnyDatabase。 +```bash +db.createUser( { user: "admin", pwd: "admin", roles:['readWriteAnyDatabase','dbAdminAnyDatabase'] } ); +``` +验证用户,这里会登录到 admin +```bash +db.auth("admin","admin"); +``` +删除用户的话可以使用,注意这里要切换回 root 用户 +```bash +db.dropUser("admin"); +``` \ No newline at end of file diff --git a/docs/resources/docs/.gitkeep b/docs/resources/docs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/resources/images/.gitkeep b/docs/resources/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/resources/videos/.gitkeep b/docs/resources/videos/.gitkeep new file mode 100644 index 0000000..e69de29