修改Docker文档目录层级,更新Docker脚本,更新Docker文档
All checks were successful
continuous-integration/drone Build is passing
All checks were successful
continuous-integration/drone Build is passing
This commit is contained in:
56
Docker/Docs/Docker部署软件/Docker部署Bitnami-Mysql主从.md
Normal file
56
Docker/Docs/Docker部署软件/Docker部署Bitnami-Mysql主从.md
Normal file
@@ -0,0 +1,56 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署Bitnami-Mysql主从
|
||||
|
||||
1. 创建持久化目录
|
||||
|
||||
```bash
|
||||
mkdir -p /opt/mysql/data
|
||||
chmod 777 /opt/mysql/data
|
||||
```
|
||||
|
||||
2. 部署 Master 容器
|
||||
|
||||
```bash
|
||||
docker run --name mysql-master --restart=always \
|
||||
-p 3306:3306 \
|
||||
-v /opt/mysql/data:/bitnami/mysql/data \
|
||||
-e MYSQL_ROOT_PASSWORD=root \
|
||||
-e MYSQL_REPLICATION_MODE=master \
|
||||
-e MYSQL_REPLICATION_USER=slave \
|
||||
-e MYSQL_REPLICATION_PASSWORD=slave_password \
|
||||
-e MYSQL_AUTHENTICATION_PLUGIN=mysql_native_password \
|
||||
-d bitnami/mysql:latest
|
||||
```
|
||||
|
||||
3. 部署 Slave 容器
|
||||
|
||||
```bash
|
||||
docker run --name mysql-slave --restart=always \
|
||||
-p 3306:3306 \
|
||||
-v /opt/mysql/data:/bitnami/mysql/data \
|
||||
-e MYSQL_MASTER_HOST=<MYSQL_MASTER_HOST> \
|
||||
-e MYSQL_MASTER_ROOT_PASSWORD=root \
|
||||
-e MYSQL_MASTER_PORT_NUMBER=3306 \
|
||||
-e MYSQL_REPLICATION_MODE=slave \
|
||||
-e MYSQL_REPLICATION_USER=slave \
|
||||
-e MYSQL_REPLICATION_PASSWORD=slave_password \
|
||||
-e MYSQL_AUTHENTICATION_PLUGIN=mysql_native_password \
|
||||
-d bitnami/mysql:latest
|
||||
```
|
||||
|
||||
4. 进入 Slave 容器
|
||||
|
||||
```bash
|
||||
docker exec -it mysql-slave bash
|
||||
mysql -u root -proot
|
||||
```
|
||||
|
||||
5. 查看同步状态
|
||||
|
||||
```bash
|
||||
show slave status\G;
|
||||
```
|
||||
|
||||
> 切记请勿在主使用清空 GTID 信息命令,会使主从状态失效
|
||||
|
||||
39
Docker/Docs/Docker部署软件/Docker部署Caddy.md
Normal file
39
Docker/Docs/Docker部署软件/Docker部署Caddy.md
Normal file
@@ -0,0 +1,39 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署Caddy
|
||||
|
||||
[官网](https://caddyserver.com/)
|
||||
|
||||
1. 启动 Caddy 容器
|
||||
|
||||
```bash
|
||||
docker run -itd \
|
||||
--restart always \
|
||||
-p 80:80 \
|
||||
-v /data/caddy:/etc/caddy/ \
|
||||
--name=caddy \
|
||||
caddy:latest
|
||||
```
|
||||
|
||||
2. 进入容器修改配置文件
|
||||
|
||||
```bash
|
||||
vi /data/caddy/Caddyfile
|
||||
```
|
||||
|
||||
内容如下
|
||||
|
||||
```bash
|
||||
:80 {
|
||||
root * /etc/caddy/www
|
||||
file_server
|
||||
}
|
||||
```
|
||||
|
||||
3. 重启容器
|
||||
|
||||
```bash
|
||||
docker restart caddy
|
||||
```
|
||||
|
||||
4. 访问 IP:80
|
||||
82
Docker/Docs/Docker部署软件/Docker部署Fio磁盘读写测试.md
Normal file
82
Docker/Docs/Docker部署软件/Docker部署Fio磁盘读写测试.md
Normal file
@@ -0,0 +1,82 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署Fio磁盘读写测试
|
||||
|
||||
[官方文档](https://fio.readthedocs.io/en/latest/fio_doc.html)
|
||||
|
||||
1. 拉取测试工具镜像
|
||||
|
||||
```bash
|
||||
docker pull registry.cn-hangzhou.aliyuncs.com/offends/fio:latest
|
||||
```
|
||||
|
||||
2. 启动并进入容器
|
||||
|
||||
> 为了更好的测试磁盘读写速率我们挂载 /data 目录进行测试
|
||||
|
||||
```bash
|
||||
docker run --name disktest \
|
||||
-it --rm -v /data/disk_test:/data/disk_test \
|
||||
registry.cn-hangzhou.aliyuncs.com/offends/fio:latest \
|
||||
sh
|
||||
```
|
||||
|
||||
3. 开始测试
|
||||
|
||||
- 随机写
|
||||
|
||||
```bash
|
||||
fio --ioengine=libaio --runtime=300 --numjobs=2 --iodepth=64 --bs=4k --size=2G --rw=randwrite --filename=/data/disk_test --time_based=1 --direct=1 --name=test --group_reporting --cpus_allowed=3 --cpus_allowed_policy=split
|
||||
```
|
||||
|
||||
- 顺序写
|
||||
|
||||
```bash
|
||||
fio --ioengine=libaio -runtime=300 --numjobs=2 --iodepth=64 --bs=1024k --size=10G --rw=write --filename=/data/disk_test --time_based=1 --direct=1 --name=test --group_reporting --cpus_allowed=3 --cpus_allowed_policy=split
|
||||
```
|
||||
|
||||
4. 查看结果
|
||||
|
||||
> 随机写看(IOPS)
|
||||
>
|
||||
> 顺序写看(吞吐量BW)
|
||||
|
||||
# 命令参数
|
||||
|
||||
| 参数 | 描述 |
|
||||
| -------------------- | ------------------------------------------------------------ |
|
||||
| --debug=options | 启用调试日志记录,可以选择启用不同类型的调试信息,比如进程、文件、IO等等。 |
|
||||
| --parse-only | 仅解析选项,不执行任何IO操作。 |
|
||||
| --output | 将输出写入文件。 |
|
||||
| --bandwidth-log | 生成带宽日志。 |
|
||||
| --minimal | 生成最小化(简洁)的输出。 |
|
||||
| --output-format=type | 指定输出格式,可以是简洁、JSON等。 |
|
||||
| --terse-version=type | 设置简洁版本输出格式。 |
|
||||
| --version | 打印版本信息并退出。 |
|
||||
| --help | 打印帮助信息。 |
|
||||
| --cpuclock-test | 执行CPU时钟的测试/验证。 |
|
||||
| --crctest=[type] | 测试校验和功能的速度。 |
|
||||
| --cmdhelp=cmd | 打印命令帮助,使用"all"可以查看所有命令。 |
|
||||
| --enghelp=engine | 打印IO引擎的帮助信息,或者列出可用的IO引擎。 |
|
||||
| --enghelp=engine,cmd | 打印特定IO引擎命令的帮助信息。 |
|
||||
| --showcmd | 将作业文件转换为命令行选项。 |
|
||||
| --eta=when | 指定何时打印ETA(预计完成时间)估计值。 |
|
||||
| --eta-newline=time | 每个 'time' 时间段强制换行显示ETA。 |
|
||||
| --status-interval=t | 每个 't' 时间段强制完整状态转储。 |
|
||||
| --readonly | 打开安全只读检查,防止写入。 |
|
||||
| --section=name | 只运行作业文件中指定的部分,可以指定多个部分。 |
|
||||
| --alloc-size=kb | 将smalloc池的大小设置为指定的kb数(默认为16384)。 |
|
||||
| --warnings-fatal | Fio解析器警告变为致命错误。 |
|
||||
| --max-jobs=nr | 支持的最大线程/进程数。 |
|
||||
| --server=args | 启动后端fio服务器。 |
|
||||
| --daemonize=pidfile | 后台运行fio服务器,将PID写入文件。 |
|
||||
| --client=hostname | 与远程后端fio服务器通信。 |
|
||||
| --remote-config=file | 告诉fio服务器加载本地作业文件。 |
|
||||
| --idle-prof=option | 报告系统或每CPU基础的CPU空闲情况或运行单位工作校准。 |
|
||||
| --inflate-log=log | 解压缩并输出压缩日志。 |
|
||||
| --trigger-file=file | 当文件存在时执行触发命令。 |
|
||||
| --trigger-timeout=t | 在指定的时间执行触发器。 |
|
||||
| --trigger=cmd | 将此命令设置为本地触发器。 |
|
||||
| --trigger-remote=cmd | 将此命令设置为远程触发器。 |
|
||||
| --aux-path=path | 使用此路径作为fio生成文件的路径。 |
|
||||
|
||||
169
Docker/Docs/Docker部署软件/Docker部署Gitlab.md
Normal file
169
Docker/Docs/Docker部署软件/Docker部署Gitlab.md
Normal file
@@ -0,0 +1,169 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署Gitlab
|
||||
|
||||
[企业版官网网址](https://docs.gitlab.com/ee/install/docker.html)
|
||||
|
||||
> 部署开源版
|
||||
>
|
||||
> 例:本地 IP 为 192.168.1.10
|
||||
|
||||
## 部署Gitlab
|
||||
|
||||
1. 启动容器
|
||||
|
||||
> 这里也可以通过 `--hostname 192.168.1.10` 指定 Clone 地址,Gitlab会通过读取本地主机名作为默认的 Clone 地址
|
||||
|
||||
```bash
|
||||
docker run -itd \
|
||||
--restart always \
|
||||
-p 80:80 \
|
||||
-p 222:22 \
|
||||
-u root \
|
||||
-v $PWD/data/log:/var/log/gitlab \
|
||||
-v $PWD/data/opt:/var/opt/gitlab \
|
||||
-v $PWD/data/etc:/etc/gitlab \
|
||||
--privileged=true \
|
||||
--name=gitlab \
|
||||
gitlab/gitlab-ce:latest
|
||||
```
|
||||
|
||||
2. 进入容器查看 root 初始密码
|
||||
|
||||
```bash
|
||||
docker exec -it gitlab bash
|
||||
```
|
||||
|
||||
```bash
|
||||
cat /etc/gitlab/initial_root_password
|
||||
```
|
||||
|
||||
> 访问 192.168.1.10:80
|
||||
|
||||
3. 修改 SSH Clone 地址(进入容器内执行)
|
||||
|
||||
```bash
|
||||
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
|
||||
vi /etc/gitlab/gitlab.rb
|
||||
```
|
||||
|
||||
写入如下内容
|
||||
|
||||
```bash
|
||||
external_url "http://192.168.1.10:80" #http对外clone地址
|
||||
gitlab_rails["gitlab_ssh_host"] = "192.168.1.10" #ssh对外clone地址
|
||||
gitlab_rails["gitlab_shell_ssh_port"] = 222 #ssh对外clone端口
|
||||
```
|
||||
|
||||
4. 重启服务
|
||||
|
||||
```bash
|
||||
gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
## 安装Gitlab-runner
|
||||
|
||||
1. 启动容器
|
||||
|
||||
```bash
|
||||
docker run -itd --name gitlab-runner \
|
||||
--restart always \
|
||||
--privileged=true \
|
||||
-v $PWD/data/gitlab-runner-config:/etc/gitlab-runner \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v /usr/local/bin/docker:/usr/bin/docker \
|
||||
gitlab/gitlab-runner:latest
|
||||
```
|
||||
|
||||
2. 创建 Runner 实例获取 Token
|
||||
|
||||
点击Admin Area(管理员设置) > 点击CI/CD > 点击Runners > 点击New project runner > 选择Linux > 填写一个Tags > 点击Create runner
|
||||
|
||||
3. 进入容器
|
||||
|
||||
```bash
|
||||
docker exec -it gitlab-runner bash
|
||||
```
|
||||
|
||||
4. 开始注册 Runner
|
||||
|
||||
```bash
|
||||
gitlab-ci-multi-runner register
|
||||
```
|
||||
|
||||
过程如下
|
||||
|
||||
```bash
|
||||
Runtime platform arch=amd64 os=linux pid=106 revision=6e766faf version=16.4.0
|
||||
Running in system-mode.
|
||||
|
||||
Enter the GitLab instance URL (for example, https://gitlab.com/):
|
||||
http://192.168.1.10 #Gitlab地址
|
||||
Enter the registration token:
|
||||
******** #刚刚获取到的Token
|
||||
Verifying runner... is valid runner=Te1gEas2d
|
||||
Enter a name for the runner. This is stored only in the local config.toml file:
|
||||
[f94c7a9b1272]: test #名称
|
||||
Enter an executor: docker+machine, instance, kubernetes, docker-windows, shell, virtualbox, docker-autoscaler, custom, docker, parallels, ssh:
|
||||
shell #输入一个执行器
|
||||
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
|
||||
|
||||
Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"
|
||||
```
|
||||
|
||||
5. 开始测试
|
||||
|
||||
在测试仓库内创建 `.gitlab-ci.yml` 文件编写内容
|
||||
|
||||
```yml
|
||||
stages:
|
||||
- test
|
||||
build-test:
|
||||
stage: test
|
||||
tags:
|
||||
- test
|
||||
script:
|
||||
- echo "Hello world"
|
||||
```
|
||||
|
||||
6. 查看结果
|
||||
|
||||
进入测试仓库 > 点击Build > 点击Pipelines > 查看到 `passed` 即为成功可点击进去查看
|
||||
|
||||
## 忘记密码
|
||||
|
||||
1. 进入容器
|
||||
|
||||
```bash
|
||||
docker exec -it gitlab /bin/bash
|
||||
```
|
||||
|
||||
2. 进⼊控制台(需要等待一段时间)
|
||||
|
||||
```bash
|
||||
gitlab-rails console -e production
|
||||
```
|
||||
|
||||
3. 查询root⽤户
|
||||
|
||||
```bash
|
||||
user=User.where(id:1).first
|
||||
```
|
||||
|
||||
4. 设置密码
|
||||
|
||||
```bash
|
||||
user.password='password'
|
||||
```
|
||||
|
||||
5. 保存退出
|
||||
|
||||
```bash
|
||||
user.save!
|
||||
exit
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
31
Docker/Docs/Docker部署软件/Docker部署JumpServer.md
Normal file
31
Docker/Docs/Docker部署软件/Docker部署JumpServer.md
Normal file
@@ -0,0 +1,31 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署JumpServer
|
||||
|
||||
[官网](https://docs.jumpserver.org/zh/master/install/setup_by_fast/) [JumpServer安装包](https://github.com/jumpserver/installer/releases)
|
||||
|
||||
1. 部署 Mysql 数据库
|
||||
|
||||
```bash
|
||||
docker run -itd --name jump-mysql \
|
||||
--restart=always -p 3306:3306 \
|
||||
-v /usr/local/jumpserver/data:/var/lib/mysql \
|
||||
-v /usr/local/jumpserver/logs:/var/log/mysql \
|
||||
-v /usr/local/jumpserver/conf:/etc/mysql/conf.d \
|
||||
-e MYSQL_ROOT_PASSWORD=jumpserver \
|
||||
-e MYSQL_DATABASE=jumpserver \
|
||||
mysql:5.7
|
||||
```
|
||||
|
||||
2. 解压 JumpServer 安装包
|
||||
|
||||
```bash
|
||||
tar -xf jumpserver-installer-v*.tar.gz
|
||||
cd jumpserver-installer-v*
|
||||
```
|
||||
|
||||
3. 修改 `config-example.txt` 文件配置参数, 并启动
|
||||
|
||||
```bash
|
||||
./jmsctl.sh install
|
||||
```
|
||||
23
Docker/Docs/Docker部署软件/Docker部署LobeChat.md
Normal file
23
Docker/Docs/Docker部署软件/Docker部署LobeChat.md
Normal file
@@ -0,0 +1,23 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署LobeChat
|
||||
|
||||
[Github](https://github.com/lobehub/lobe-chat) [官方文档](https://lobehub.com/zh/features) [官方部署文档](https://lobehub.com/zh/docs/self-hosting/platform/docker)
|
||||
|
||||
[OpenAi-Api-keys页面](https://platform.openai.com/api-keys)
|
||||
|
||||
```
|
||||
docker run -d -p 3210:3210 \
|
||||
-e OPENAI_API_KEY=sk-xxxx \
|
||||
-e ACCESS_CODE=lobe66 \
|
||||
--name lobe-chat \
|
||||
lobehub/lobe-chat
|
||||
```
|
||||
|
||||
**参数解释**
|
||||
|
||||
- `OPENAI_API_KEY`:这是用于访问 OpenAI 服务的 API 密钥。这个密钥用于验证请求的身份,并确保请求是由授权用户发起的。
|
||||
|
||||
- `OPENAI_PROXY_URL`:这是一个代理服务器的 URL,用于将请求重定向到指定的地址。这可以用于在请求 OpenAI API 时绕过直接访问限制,或者用于增加安全性。
|
||||
|
||||
- `ACCESS_CODE`:这是一个访问代码,可能用于程序内部的身份验证或控制访问某些功能。
|
||||
58
Docker/Docs/Docker部署软件/Docker部署Nacos.md
Normal file
58
Docker/Docs/Docker部署软件/Docker部署Nacos.md
Normal file
@@ -0,0 +1,58 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署Nacos
|
||||
|
||||
[官网文档](https://nacos.io/zh-cn/docs/v2/guide/user/auth.html)
|
||||
|
||||
1. 启动 MYSQL
|
||||
|
||||
```bash
|
||||
docker run --name nacos-mysql --restart=always \
|
||||
-p 3306:3306 \
|
||||
-v /data/mysql:/var/lib/mysql \
|
||||
-e MYSQL_USER=nacos \
|
||||
-e MYSQL_PASSWORD=nacos \
|
||||
-e MYSQL_DATABASE=nacos \
|
||||
-e MYSQL_ROOT_PASSWORD=root \
|
||||
-d mysql:latest
|
||||
```
|
||||
|
||||
2. 启动 NACOS
|
||||
|
||||
```bash
|
||||
docker run --name nacos --restart=always \
|
||||
-p 8848:8848 \
|
||||
-e MYSQL_SERVICE_HOST=${MYSQL_HOST} \
|
||||
-e MYSQL_SERVICE_PORT=3306 \
|
||||
-e MYSQL_SERVICE_USER=nacos \
|
||||
-e MYSQL_SERVICE_PASSWORD=nacos \
|
||||
-e MYSQL_SERVICE_DB_NAME=nacos \
|
||||
-e MODE=standalone \
|
||||
-e PREFER_HOST_MODE=hostname \
|
||||
-d mysql:latest
|
||||
```
|
||||
|
||||
3. 开启登录
|
||||
|
||||
```bash
|
||||
vi /data/nacos/application.properties
|
||||
```
|
||||
|
||||
内容如下
|
||||
|
||||
```bash
|
||||
# vi /data/nacos/application.properties
|
||||
nacos.core.auth.enabled=true
|
||||
nacos.core.auth.server.identity.key=nacos
|
||||
nacos.core.auth.server.identity.value=nacos
|
||||
|
||||
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
|
||||
```
|
||||
|
||||
4. 访问:http://localhost:8848/nacos/#/login
|
||||
|
||||
> 启动挂载配置文件
|
||||
>
|
||||
> ```bash
|
||||
> -e /data/nacos/application.properties:/home/nacos/conf/application.properties
|
||||
> ```
|
||||
57
Docker/Docs/Docker部署软件/Docker部署Nginx使用配置文件读取变量.md
Normal file
57
Docker/Docs/Docker部署软件/Docker部署Nginx使用配置文件读取变量.md
Normal file
@@ -0,0 +1,57 @@
|
||||
> 本文作者:丁辉
|
||||
>
|
||||
|
||||
# Docker部署Nginx使用配置文件读取变量
|
||||
|
||||
## 方法一使用 Envsubst 渲染替换环境变量
|
||||
|
||||
1. 编辑 Dockerfile
|
||||
|
||||
```dockerfile
|
||||
FROM nginx:alpine-slim
|
||||
|
||||
COPY ./nginx.conf.template /etc/nginx/conf.d/nginx.conf.template
|
||||
|
||||
ENV PROXY_SERVER=default
|
||||
|
||||
CMD /bin/sh -c "envsubst '\$PROXY_SERVER \$SERVER_NAME' < /etc/nginx/conf.d/nginx.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
|
||||
```
|
||||
|
||||
2. 编辑 nginx.conf.template 文件
|
||||
|
||||
```bash
|
||||
vi nginx.conf.template
|
||||
```
|
||||
|
||||
内容如下
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name ${SERVER_NAME};
|
||||
|
||||
location / {
|
||||
proxy_pass http://${PROXY_SERVER}:3080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
3. 构建镜像
|
||||
|
||||
```bash
|
||||
docker build -t <name:tag> .
|
||||
```
|
||||
|
||||
4. 启动容器(指定变量)
|
||||
|
||||
```bash
|
||||
docker run -itd -e PROXY_SERVER=127.0.0.1 -e SERVER_NAME=localhost <name:tag>
|
||||
```
|
||||
|
||||
## 方法二
|
||||
|
||||
**查看此文档**
|
||||
|
||||
[Nginx镜像构建](https://gitee.com/offends/Kubernetes/tree/main/Docker/Dockerfile/Nginx)
|
||||
16
Docker/Docs/Docker部署软件/Docker部署Node-exporter.md
Normal file
16
Docker/Docs/Docker部署软件/Docker部署Node-exporter.md
Normal file
@@ -0,0 +1,16 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署Node-exporter
|
||||
|
||||
```bash
|
||||
docker run -d --restart=always \
|
||||
-p 9100:9100 \
|
||||
-v "/proc:/host/proc:ro" \
|
||||
-v "/sys:/host/sys:ro" \
|
||||
-v "/:/rootfs:ro" \
|
||||
--net="host" \
|
||||
--restart=always \
|
||||
--name node-exporter \
|
||||
prom/node-exporter
|
||||
```
|
||||
|
||||
45
Docker/Docs/Docker部署软件/Docker部署Portainer.md
Normal file
45
Docker/Docs/Docker部署软件/Docker部署Portainer.md
Normal file
@@ -0,0 +1,45 @@
|
||||
> 本文作者:丁辉
|
||||
>
|
||||
|
||||
# Docker部署Portainer
|
||||
|
||||
[官方文档](https://docs.portainer.io/)
|
||||
|
||||
> 通过Portainer管理docker
|
||||
|
||||
## Docker部署
|
||||
|
||||
```bash
|
||||
docker run -d -p 9000:9000 \
|
||||
--name portainer --restart=always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v /data/portainer:/data \
|
||||
portainer/portainer-ce:latest
|
||||
```
|
||||
|
||||
## 远程连接Docker
|
||||
|
||||
远程连接默认端口是2375 [Docker配置2375端口文档](https://gitee.com/offends/Kubernetes/blob/main/Docker/Docs/Docker%E9%85%8D%E7%BD%AE2375%E7%AB%AF%E5%8F%A3.md)
|
||||
|
||||
## 忘记密码
|
||||
|
||||
1. 下载新镜像
|
||||
|
||||
```bash
|
||||
docker pull portainer/helper-reset-password
|
||||
```
|
||||
|
||||
2. 关闭容器
|
||||
|
||||
```bash
|
||||
docker stop portainer
|
||||
```
|
||||
|
||||
3. 启动观看密码
|
||||
|
||||
```bash
|
||||
docker run --rm -v portainer_data:/data portainer/helper-reset-password
|
||||
```
|
||||
|
||||
|
||||
|
||||
68
Docker/Docs/Docker部署软件/Docker部署Tor实现匿名通信.md
Normal file
68
Docker/Docs/Docker部署软件/Docker部署Tor实现匿名通信.md
Normal file
@@ -0,0 +1,68 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署Tor实现匿名通信
|
||||
|
||||
## 介绍
|
||||
|
||||
Tor(The Onion Router)是一种免费的开源软件,用于实现匿名通信。它通过全球范围内的一系列自愿维护的节点或“路由器”来转发和加密用户的互联网流量,从而隐藏用户的身份和位置。
|
||||
|
||||
[官方文档](https://community.torproject.org/onion-services/setup/install/)
|
||||
|
||||
## 开始部署
|
||||
|
||||
> 准备一个 Nginx 服务,部署 Tor 实现匿名通信 Nginx
|
||||
>
|
||||
> Nginx访问地址:192.168.1.10:80
|
||||
|
||||
1. 创建持久化目录
|
||||
|
||||
```bash
|
||||
mkdir -p $HOME/tor-data
|
||||
```
|
||||
|
||||
2. 目录授权
|
||||
|
||||
```bash
|
||||
chmod 700 $HOME/tor-data
|
||||
chown 100:65533 $HOME/tor-data
|
||||
```
|
||||
|
||||
3. 编写配置文件
|
||||
|
||||
```bash
|
||||
vi $HOME/tor-data/torrc
|
||||
```
|
||||
|
||||
内容如下
|
||||
|
||||
```bash
|
||||
Log notice file /var/log/tor/notices.log
|
||||
SOCKSPort 0
|
||||
HiddenServiceNonAnonymousMode 1
|
||||
HiddenServiceSingleHopMode 1
|
||||
# 配置代理
|
||||
#Socks5Proxy sslocal-rust:1080
|
||||
HiddenServiceDir /var/lib/tor/nginx
|
||||
HiddenServicePort 80 192.168.1.10:80
|
||||
```
|
||||
|
||||
4. 启动容器
|
||||
|
||||
```bash
|
||||
docker run -itd \
|
||||
--restart always \
|
||||
-v $HOME/tor-data:/var/lib/tor \
|
||||
-v $HOME/tor-data:/etc/tor \
|
||||
--name=tor \
|
||||
osminogin/tor-simple:latest
|
||||
```
|
||||
|
||||
5. 查看 hostname
|
||||
|
||||
```bash
|
||||
cat $HOME/tor-data/nginx/hostname
|
||||
```
|
||||
|
||||
6. 通过匿名浏览器访问
|
||||
|
||||
> xxx.onion
|
||||
158
Docker/Docs/Docker部署软件/Docker部署Watchtower管理容器更新.md
Normal file
158
Docker/Docs/Docker部署软件/Docker部署Watchtower管理容器更新.md
Normal file
@@ -0,0 +1,158 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# Docker部署Watchtower管理容器更新
|
||||
|
||||
[Github仓库](https://github.com/containrrr/watchtower)
|
||||
|
||||
## 介绍
|
||||
|
||||
Watchtower 是一个开源的容器监控和自动更新工具,设计用于Docker容器环境。它可以监控正在运行的容器及其使用的镜像,当发现镜像有更新时,自动拉取新镜像并重新启动容器。这种自动化管理方式有助于确保部署的应用保持最新状态,从而减少安全风险和改进功能。
|
||||
|
||||
## 快速开始
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower
|
||||
```
|
||||
|
||||
所有容器都会自动更新,也包括 Watchtower 本身。
|
||||
|
||||
## 其他启动参数
|
||||
|
||||
- 自动清除旧镜像
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
--restart always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower \
|
||||
--cleanup
|
||||
```
|
||||
|
||||
> `--cleanup` 选项可以简写为 `-c`
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
--restart always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -c
|
||||
```
|
||||
|
||||
- 选择性自动更新
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
--restart always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -c \
|
||||
nginx redis
|
||||
```
|
||||
|
||||
- 配置容器更新列表
|
||||
|
||||
```bash
|
||||
vi ~/.watchtower.list
|
||||
```
|
||||
|
||||
内容如下
|
||||
|
||||
```bash
|
||||
nginx
|
||||
reidis
|
||||
```
|
||||
|
||||
启动 Watchtower 容器
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
--restart always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -c \
|
||||
$(cat ~/.watchtower.list)
|
||||
```
|
||||
|
||||
- 设置单个容器自动更新标签
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name nginx \
|
||||
--restart always \
|
||||
--label com.centurylinklabs.watchtower.enable=true \
|
||||
nginx:latest
|
||||
```
|
||||
|
||||
启动 Watchtower 容器
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
--restart always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -c \
|
||||
--label-enable
|
||||
```
|
||||
|
||||
> `--label-enable` 可以简写为 `-e`
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
--restart always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -ce
|
||||
```
|
||||
|
||||
- 设置自动更新检查频率
|
||||
|
||||
- `--interval` 设置更新检测时间间隔单位为秒。
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
--restart always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -c \
|
||||
--interval 3600
|
||||
```
|
||||
|
||||
- `--schedule` 设置定时检测更新时间。格式为 6 字段 Cron 表达式,而非传统的 5 字段,第一位是秒。
|
||||
|
||||
> 比如每天凌晨 2 点检查一次更新
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name watchtower \
|
||||
--restart always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -c \
|
||||
--schedule "0 0 2 * * *"
|
||||
```
|
||||
|
||||
- 手动更新
|
||||
|
||||
> 检查 nginx 是否需要更新
|
||||
|
||||
```bash
|
||||
docker run --rm \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -c \
|
||||
--run-once \
|
||||
nginx
|
||||
```
|
||||
|
||||
> `--run-once` 可以简写为 `-R`
|
||||
|
||||
```bash
|
||||
docker run --rm \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
containrrr/watchtower -cR \
|
||||
nginx
|
||||
```
|
||||
|
||||
> 当容器设置过 `com.centurylinklabs.watchtower.enable=false` 参数则不会更新
|
||||
Reference in New Issue
Block a user