docker添加完成

This commit is contained in:
Bunny 2025-02-19 18:06:41 +08:00
parent 40be4ac294
commit 11e1cff698
11 changed files with 630 additions and 3 deletions

View File

@ -1,5 +1,5 @@
---
title: C# 相关
title: C#
index: true
icon: devicon:csharp
headerDepth: 4

View File

@ -1,5 +1,5 @@
---
title: 基础
title: 基础笔记
index: false
icon: guidance:study-room
headerDepth: 4

View File

@ -0,0 +1,87 @@
# Auth环境
## 文件方式安装环境
使用docker-compose有的时候会因为版本不同但是配置文件主要内容就是这些。需要注意版本问题
**mysql配置问题**
| **特性** | `**my.cnf**` | `**conf.d**` **目录** |
| ------------ | ---------------------------- | -------------------------- |
| **文件类型** | 单个文件 | 目录,包含多个 `.cnf` 文件 |
| **配置方式** | 集中式配置 | 分布式配置 |
| **优先级** | 高(覆盖 `conf.d` 中的配置) | 低(被 `my.cnf` 覆盖) |
| **适用场景** | 全局配置,核心配置 | 模块化配置,便于扩展和维护 |
------
```yaml
name: auth-dependence # 定义该配置的名称为 auth-dependence
services: # 定义服务列表
# 安装MySQL
mysql: # 定义 MySQL 服务
container_name: mysql_master # 容器名称为 mysql_master
image: mysql:8.0.33 # 使用 MySQL 8.0.33 版本的镜像
ports:
- "3306:3306" # 将宿主机的 3306 端口映射到容器的 3306 端口
environment:
- MYSQL_ROOT_PASSWORD=123456 # 设置 MySQL 的 root 用户密码为 123456
- TZ=Asia/Shanghai # 设置时区为亚洲/上海
volumes:
# - ~/docker/docker_data/mysql/mysql_master/etc/my.cnf:/etc/my.cnf # 如果需要创建配置文件
- ~/docker/docker_data/mysql/mysql_master/etc/mysql:/etc/mysql/conf.d # 挂载 MySQL 配置文件目录
- ~/docker/docker_data/mysql/mysql_master/data:/var/lib/mysql # 挂载 MySQL 数据目录
- ~/docker/docker_data/mysql/mysql_master/backup:/backup # 挂载备份目录
command:
- "--log-bin=mysql-bin" # 启用二进制日志
- "--server-id=1" # 设置服务器 ID 为 1
- "--collation-server=utf8mb4_unicode_ci" # 设置默认的排序规则为 utf8mb4_unicode_ci
- "--character-set-server=utf8mb4" # 设置默认的字符集为 utf8mb4
- "--lower-case-table-names=1" # 设置表名存储为小写
restart: always # 设置容器总是自动重启
privileged: true # 赋予容器特权模式
networks:
- auth # 将 MySQL 服务加入到 auth 网络
# 安装Redis
redis: # 定义 Redis 服务
container_name: redis_master # 容器名称为 redis_master
image: redis:7.0.10 # 使用 Redis 7.0.10 版本的镜像
ports:
- "6379:6379" # 将宿主机的 6379 端口映射到容器的 6379 端口
volumes:
# - ~/docker/docker_data/redis_master/redis.conf:/etc/redis/redis.conf # 需要创建配置文件
- ~/docker/docker_data/redis_master:/etc/redis # 挂载 Redis 配置文件目录
- ~/docker/docker_data/redis_master/data:/data # 挂载 Redis 数据目录
command:
- "--appendonly yes" # 启用 AOF 持久化
- "--daemonize no" # 不以守护进程方式运行
- "--requirepass 123456" # 设置 Redis 访问密码为 123456
- "--tcp-keepalive 300" # 设置 TCP keepalive 时间为 300 秒
restart: always # 设置容器总是自动重启
networks:
- auth # 将 MySQL 服务加入到 auth 网络
# 安装 Minio
minio: # 定义 Minio 服务
image: minio/minio # 使用 Minio 官方镜像
container_name: minio_master # 容器名称为 minio_master
ports:
- "9000:9000" # 将宿主机的 9000 端口映射到容器的 9000 端口
- "9090:9090" # 将宿主机的 9090 端口映射到容器的 9090 端口
volumes:
- ~/docker/docker_data/minio/data:/data # 挂载 Minio 数据目录
environment:
- MINIO_ROOT_USER=bunny # 设置 Minio 的 root 用户名为 bunny
- MINIO_ROOT_PASSWORD=02120212 # 设置 Minio 的 root 用户密码为 02120212
command: "server /data --console-address :9090" # 启动 Minio 服务并指定控制台地址
restart: always # 设置容器总是自动重启
networks:
- auth # 将 MySQL 服务加入到 auth 网络
networks: # 定义网络
auth: # 定义名为 auth 的网络
name: auth # 网络名称为 auth
driver: bridge # 使用 bridge 驱动(默认)
```

View File

@ -0,0 +1,64 @@
---
title: Docker-Compose
index: true
icon: catppuccin:docker-compose
headerDepth: 4
category:
- 笔记
- 记录
- 学习
- 问题
- Dcker
- Dcker-Compose
dir:
order: 2
---
<Catalog />
## docker-compose
**安装docker-compose或者安装最新的docker之后使用**`**docker compose up -d**`
### Rocky、Centos
```shell
sudo yum install docker-ce docker-ce-cli containerd.io
sudo yum install curl
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo docker-compose --version
```
### Ubuntu
```bash
sudo apt install docker-compose
```
## docker-compose命令
### 只拉取镜像
docker-compose pull 命令会拉取 docker-compose.yml 文件中定义的所有服务的镜像,但不会创建或启动容器。
```bash
docker-compose pull
```
### 拉取镜像而不做其他操作
只拉取镜像而不做其他操作,可以结合 docker-compose 的其他命令来实现:
```bash
docker-compose up --no-start
```
### 拉取镜像并创建容器
```bash
docker-compose up -d
```

View File

@ -0,0 +1,280 @@
# 基础微服务
## 文件方式安装环境
使用docker-compose有的时候会因为版本不同但是配置文件主要内容就是这些。需要注意版本问题
### mysql配置问题
| **特性** | `**my.cnf**` | `**conf.d**`<br/>** ****目录** |
| --- | --- | --- |
| **<font style="color:rgb(64, 64, 64);">文件类型</font>** | <font style="color:rgb(64, 64, 64);">单个文件</font> | <font style="color:rgb(64, 64, 64);">目录,包含多个</font><font style="color:rgb(64, 64, 64);"> </font>`<font style="color:rgb(64, 64, 64);">.cnf</font>`<br/><font style="color:rgb(64, 64, 64);"> </font><font style="color:rgb(64, 64, 64);">文件</font> |
| **<font style="color:rgb(64, 64, 64);">配置方式</font>** | <font style="color:rgb(64, 64, 64);">集中式配置</font> | <font style="color:rgb(64, 64, 64);">分布式配置</font> |
| **<font style="color:rgb(64, 64, 64);">优先级</font>** | <font style="color:rgb(64, 64, 64);">高(覆盖</font><font style="color:rgb(64, 64, 64);"> </font>`<font style="color:rgb(64, 64, 64);">conf.d</font>`<br/><font style="color:rgb(64, 64, 64);"> </font><font style="color:rgb(64, 64, 64);">中的配置)</font> | <font style="color:rgb(64, 64, 64);">低(被</font><font style="color:rgb(64, 64, 64);"> </font>`<font style="color:rgb(64, 64, 64);">my.cnf</font>`<br/><font style="color:rgb(64, 64, 64);"> </font><font style="color:rgb(64, 64, 64);">覆盖)</font> |
| **<font style="color:rgb(64, 64, 64);">适用场景</font>** | <font style="color:rgb(64, 64, 64);">全局配置,核心配置</font> | <font style="color:rgb(64, 64, 64);">模块化配置,便于扩展和维护</font> |
### MongoDB配置
```bash
sudo mkdir -p ~/docker/docker_data/mongo/conf
sudo mkdir -p ~/docker/docker_data/mongo/logs
sudo chmod 777 ~/docker/docker_data/mongo/logs
sudo chmod 777 ~/docker/docker_data/mongo/conf
cd ~/docker/docker_data/mongo/logs
sudo touch mongod.log
sudo chmod 777 mongod.log
cd ~/docker/docker_data/mongo/conf
sudo vim mongod.conf
cd ~
```
#### 配置文件
```bash
# 数据库文件存储位置
dbpath = /data/db
# log文件存储位置
logpath = /data/log/mongod.log
# 使用追加的方式写日志
logappend = true
# 是否以守护进程方式运行
# fork = true
# 全部ip可以访问
bind_ip = 0.0.0.0
# 端口号
port = 27017
# 是否启用认证
auth = true
# 设置oplog的大小(MB)
oplogSize=2048
```
#### 设置账户密码
```shell
#进入容器
docker exec -it mongodb /bin/bash
#进入mongodb shell
mongosh --port 27017
#切换到admin库
use admin
#创建账号/密码
db.createUser({ user: 'admin', pwd: '02120212', roles: [ { role: "root", db: "admin" } ] });
# db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
```
## docker-compose.yml
```yaml
name: cloud-dependence
services:
mysql:
container_name: mysql_master
image: mysql:8.0.33
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
- TZ=Asia/Shanghai
volumes:
# - ~/docker/docker_data/mysql/mysql_master/etc/my.cnf:/etc/my.cnf # 如果需要创建配置文件
- ~/docker/docker_data/mysql/mysql_master/etc/mysql:/etc/mysql/conf.d
- ~/docker/docker_data/mysql/mysql_master/data:/var/lib/mysql
- ~/docker/docker_data/mysql/mysql_master/backup:/backup
command:
- "--log-bin=mysql-bin"
- "--server-id=1"
- "--collation-server=utf8mb4_unicode_ci"
- "--character-set-server=utf8mb4"
- "--lower-case-table-names=1"
restart: always
privileged: true
networks:
- cloud
redis:
container_name: redis_master
image: redis:7.0.10
ports:
- "6379:6379"
volumes:
# - ~/docker/docker_data/redis_master/redis.conf:/etc/redis/redis.conf # 需要创建配置文件
- ~/docker/docker_data/redis_master:/etc/redis # 之后要配置文件可以直接在这里创建 redis.conf
- ~/docker/docker_data/redis_master/data:/data
command:
- "--appendonly yes"
- "--daemonize no"
- "--requirepass 123456"
- "--tcp-keepalive 300"
restart: always
networks:
- cloud
minio:
image: minio/minio
container_name: minio_master
ports:
- "9000:9000"
- "9090:9090"
volumes:
- ~/docker/docker_data/minio/data:/data
environment:
- MINIO_ROOT_USER=bunny
- MINIO_ROOT_PASSWORD=02120212
command: "server /data --console-address :9090"
restart: always
networks:
- cloud
mongodb:
image: mongo:latest
container_name: mongodb
restart: always
privileged: true
ports:
- "27017:27017"
volumes:
- ~/docker/docker_data/mongo/data:/data/db
- ~/docker/docker_data/mongo/conf:/data/configdb
- ~/docker/docker_data/mongo/logs:/data/log
command: "mongod --config /data/configdb/mongod.conf"
networks:
- cloud
nacos:
image: nacos/nacos-server:v2.4.3
container_name: nacos
ports:
- "8848:8848"
- "9848:9848"
environment:
- MODE=standalone
restart: always
networks:
- cloud
sentinel:
image: bladex/sentinel-dashboard:1.8.8
container_name: sentinel
ports:
- "8858:8858"
privileged: true
restart: always
networks:
- cloud
seata-server:
image: apache/seata-server:2.3.0.jdk21
container_name: seata-server
ports:
- "8091:8091"
restart: always
networks:
- cloud
networks: # 定义网络
cloud: # 定义名为 auth 的网络
name: cloud # 网络名称为 auth
driver: bridge # 使用 bridge 驱动(默认)
```
## 拉取镜像模板
```yaml
name: cloud-dependence
services:
mysql:
container_name: mysql_master
image: mysql:8.0.33
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
- TZ=Asia/Shanghai
volumes:
# - ~/docker/docker_data/mysql/mysql_master/etc/my.cnf:/etc/my.cnf # 如果需要创建配置文件
- ~/docker/docker_data/mysql/mysql_master/etc/mysql:/etc/mysql/conf.d
- ~/docker/docker_data/mysql/mysql_master/data:/var/lib/mysql
- ~/docker/docker_data/mysql/mysql_master/backup:/backup
command:
- "--log-bin=mysql-bin"
- "--server-id=1"
- "--collation-server=utf8mb4_unicode_ci"
- "--character-set-server=utf8mb4"
- "--lower-case-table-names=1"
restart: always
privileged: true
redis:
container_name: redis_master
image: redis:7.0.10
ports:
- "6379:6379"
volumes:
# - ~/docker/docker_data/redis_master/redis.conf:/etc/redis/redis.conf # 需要创建配置文件
- ~/docker/docker_data/redis_master:/etc/redis # 之后要配置文件可以直接在这里创建 redis.conf
- ~/docker/docker_data/redis_master/data:/data
command:
- "--appendonly yes"
- "--daemonize no"
- "--requirepass 123456"
- "--tcp-keepalive 300"
restart: always
minio:
image: minio/minio
container_name: minio_master
ports:
- "9000:9000"
- "9090:9090"
volumes:
- ~/docker/docker_data/minio/data:/data
environment:
- MINIO_ROOT_USER=bunny
- MINIO_ROOT_PASSWORD=02120212
command: "server /data --console-address :9090"
restart: always
mongodb:
image: mongo:latest
container_name: mongodb
restart: always
privileged: true
ports:
- "27017:27017"
volumes:
- ~/docker/docker_data/mongo/data:/data/db
- ~/docker/docker_data/mongo/conf:/data/configdb
- ~/docker/docker_data/mongo/logs:/data/log
command: "mongod --config /data/configdb/mongod.conf"
nacos:
image: nacos/nacos-server:v2.4.3
container_name: nacos
ports:
- "8848:8848"
- "9848:9848"
environment:
- MODE=standalone
restart: always
sentinel:
image: bladex/sentinel-dashboard:1.8.8
container_name: sentinel
ports:
- "8858:8858"
privileged: true
restart: always
seata-server:
image: apache/seata-server:2.3.0.jdk21
container_name: seata-server
ports:
- "8091:8091"
restart: always
opendjdk:
image: openjdk:24-ea-17-jdk-oraclelinux9
```

View File

@ -0,0 +1,38 @@
# Docker镜像源
```bash
# 创建目录
sudo mkdir -p /etc/docker
# 写入配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker-0.unsee.tech",
"https://docker-cf.registry.cyou",
"https://docker.1panel.live",
"https://registry.dockermirror.com",
"https://docker.imgdb.de",
"https://docker.m.daocloud.io",
"https://hub.firefly.store",
"https://hub.littlediary.cn",
"https://hub.rat.dev",
"https://dhub.kubesre.xyz",
"https://cjie.eu.org",
"https://docker.kejilion.pro",
"https://docker.1panelproxy.com",
"https://docker.hlmirror.com",
"https://hub.fast360.xyz",
"https://dockerpull.cn",
"https://cr.laoyou.ip-ddns.com",
"https://docker.melikeme.cn",
"https://image.cloudlayer.icu",
"https://docker.tbedu.top"
]
}
EOF
# 重启docker服务
sudo systemctl daemon-reload && sudo systemctl restart docker
```

View File

@ -0,0 +1,39 @@
# Centos中配置
## Centos
### 更新库
```shell
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
yum clean all
yum makecache
yum update
```
### 安装docker
```shell
yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum -y install docker-ce.x86_64 --allowerasing
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker --now
docker ps
```
### docker初始化
```shell
systemctl start docker
systemctl enable docker
systemctl status docker
```
[Docker镜像源](https://www.yuque.com/bunny-6ixda/bgxtva/xgb6hambt3u6r5e6)

View File

@ -0,0 +1,31 @@
---
title: 安装Docker
index: true
icon: devicon:docker-wordmark
headerDepth: 4
category:
- 笔记
- 记录
- 学习
- 问题
- Docker
- 安装
dir:
order: 1
---
<Catalog />
## docker-compose
```shell
sudo yum install docker-ce docker-ce-cli containerd.io
sudo yum install curl
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo docker-compose --version
```

View File

@ -0,0 +1,74 @@
# Ubuntu中配置
## Ubuntu环境搭建
```shell
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt update
sudo apt upgrade
sudo apt-get install ca-certificates curl gnupg lsb-release
# 添加Docker官方GPG密钥
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 默认情况下只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组以避免每次使用Docker时都需要使用sudo设置完成后退出当前用户之后再进入既可
sudo usermod -aG docker $USER
# 运行docker
sudo systemctl start docker
# 安装工具
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# 重启docker
sudo service docker restart
```
> 避免每次操作都要输入`sudo`
>
```bash
# 创建分组一般
sudo groupadd docker
# 将当前用户添加到分组
sudo usermod -aG docker $USER
# 重启终端生效
exit
```
## 安装docker内容
```bash
sudo mkdir /etc/docker
sudo touch /etc/docker/daemon.json
sudo chmod 777 /etc/docker/daemon.json
sudo vim /etc/docker/daemon.json
```
**必要的 deaemon.json**
镜像源会过期:[Docker镜像源](https://www.yuque.com/bunny-6ixda/bgxtva/rh4mkvzegfumrncg)
```json
{
"registry-mirrors": [
"https://docker.unsee.tech",
"https://docker.1panel.live",
"https:\/\/jockerhub.com",
"https://dockerhub.icu",
"https://docker.1panel.live",
"https://gwsg6nw9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://f1361db2.m.daocloud.io",
"https://mirror.ccs.tencentyun.com",
"https://phtv51hj.mirror.aliyuncs.com",
"https://gwsg6nw9.mirror.aliyuncs.com"
]
}
```
重启docker
```bash
sudo systemctl restart docker.socket
```
##

14
src/note/Docker/README.md Normal file
View File

@ -0,0 +1,14 @@
---
title: Docker笔记
index: false
icon: vscode-icons:file-type-docker
headerDepth: 4
category:
- 笔记
- 记录
- 学习
- 问题
- Docker
---
<Catalog />

View File

@ -1,5 +1,5 @@
---
title: 编辑器
title: 编辑器笔记
index: true
icon: skill-icons:idea-light
headerDepth: 4