Skip to content

net_general

bash
docker network create net_general

mysql_general

bash
docker run -d \
  --name mysql_general \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v /home/mysql/data:/var/lib/mysql \
  -v /home/mysql/conf:/etc/mysql/conf.d \
  -v /home/mysql/init:/docker-entrypoint-initdb.d \
  --network net_general \
  --restart=always \
  mysql
bash
docker mysql 警告: 'mbind: Operation not permitted'

解决这个问题就要给docker容器足够的权限去操作进程修改其优先级

添加下列参数
--cap-add SYS_NICE

redis_general

bash
docker run -d \
	--name redis_general \
	-p 6379:6379 \
	-v /home/redis/data:/data \
  	--network net_general \
  	--restart=always \
	redis \
	--requirepass 123

nacos_general

bash
 # 防止cup占用高
docker run -d \
--name nacos_general \
--env-file /home/nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e TIME_ZONE='Asia/Shanghai' \
--privileged=true \
--network net_general \
--restart=always \
nacos/nacos-server:v2.1.0-slim

nacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v2.1.0-slim

bash
docker run -d \
--name nacos_general \
--env-file /home/nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e TIME_ZONE='Asia/Shanghai' \
--privileged=true \
--network net_general \
--restart=always \
nacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v2.3.2-slim

Nginx

bash
# 获取初始配置
docker cp nginx:/etc/nginx/conf.d //home/nginx/conf/conf.d
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/usr/share/nginx/html /home/nginx/html

初始配置

bash
docker run -d \
--name nginx \
-p 80:80 \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
nginx
bash
docker run -d \
--name nginx \
-p 80:80 \
-p 443:443 \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
nginx
bash
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /home/nginx/conf/conf.d/ssl/nginx.key \
-out /home/nginx/conf/conf.d/ssl/nginx.crt

pfd2zh

bash
docker pull byaidu/pdf2zh
bash
docker run -d \
--name pdf2zh \
-p 7860:7860 \
byaidu/pdf2zh

minio

bash
docker run -d \
  --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -v /home/minio/data:/data \
  -v /home/minio/config:/root/.minio \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=admin123 \
  minio/minio server /data --console-address ":9001"

nginxWebUI

bash
docker run -itd \
--name nginxWebUI \
-p 8080:8080 \
-v /home/nginxWebUI:/home/nginxWebUI \
-e BOOT_OPTIONS="--server.port=8080" \
cym1102/nginxwebui:latest
y
用户名:admin
密码:Admin123

PostgreSQL

bash
docker run -d \
  --name postgres_0 \
  --restart=always \
  -e POSTGRES_USER=root \
  -e POSTGRES_PASSWORD=123 \
  -p 5432:5432 \
  -v /home/postgresql/data:/var/lib/postgresql/data \
  postgres
bash
docker run -d \
  --name psql_0 \
  -e POSTGRES_USER=root \
  -e POSTGRES_PASSWORD=123 \
  -p 5432:5432 \
  -v /home/Docker/postgresql/data:/var/lib/postgresql/data \
  postgres

nexus

先复制/nexus-data

bash
sudo docker run -d \
--name nexus \
-u $(id -u):$(id -g) \
-p 8081:8081 \
-v /home/nexus/data:/nexus-data \
-e INSTALL4J_ADD_VM_PARAMS="-Xms128m -Xmx1024m" \
--restart=always \
sonatype/nexus3

rancher

==注意端口有偏移== 这个不行:

bash
docker run --privileged -d \
--name rancher \
--restart=unless-stopped \
-p 81:80 \
-p 444:443 \
-v /home/rancher-home/rancher:/var/lib/rancher \
-v /home/rancher-home/log:/var/log \
-v /home/rancher-home/cni:/var/lib/cni \
-v /home/rancher-home/kubelet:/var/lib/kubelet \
rancher/rancher:v2.5.12

这个OK

bash
docker run -d --restart=unless-stopped \
  --name rancher \
  -p 80:80 -p 443:443 \
  --privileged \
  rancher/rancher:latest

尝试

bash
docker run -d \
--privileged \
--name rancher1 \
--restart=unless-stopped \
-p 80:80 \
-p 443:443 \
-v /home/rancher-home/rancher:/var/lib/rancher \
-v /home/rancher-home/auditlog:/var/log/auditlog \
rancher/rancher:v2.6.14
bash
docker logs rancher1 2>&1 | grep "Bootstrap Password:"

Elasticsearch

bash
docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -e "xpack.security.enabled=false" \
  -v /home/es/data:/usr/share/elasticsearch/data \
  -v /home/es/logs:/usr/share/elasticsearch/logs \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.1

Kibana

bash
docker run -d \
  --name kibana \
  -p 5601:5601 \
  -e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \
  docker.elastic.co/kibana/kibana:8.11.1

clickhouse

bash
docker run -d \
    --name clickhouse0 \
    -p 8123:8123 \
    -p 9000:9000 \
    --ulimit nofile=262144:262144 \
    -e CLICKHOUSE_USER='root' \
    -e CLICKHOUSE_PASSWORD='zx_service_homework_l2yz' \
    -v /usr/share/zoneinfo:/usr/share/zoneinfo:ro \
    -e TZ=Asia/Shanghai \
    clickhouse/clickhouse-server

示例sql

sql
-- 1. 创建一个新数据库  
-- 我们使用 IF NOT EXISTS 来避免在数据库已经存在时报错。  
CREATE DATABASE IF NOT EXISTS demo_db;  
  
-- 2. 切换到新创建的数据库上下文  
-- 注意:这个命令在 clickhouse-client 中有效。  
-- 如果你使用像 DBeaver 这样的 GUI 工具,你可以直接在图形界面选择数据库。  
USE demo_db;  
  
-- 3. 创建一个数据表  
-- 这是示例的核心。我们创建一个用于记录用户事件的表。  
CREATE TABLE IF NOT EXISTS demo_db.dome_table  
(  
    -- 定义列和它们的数据类型  
    `event_date` Date,                                  -- 事件发生的日期  
    `event_time` DateTime,                              -- 事件发生的精确时间  
    `user_id` UInt64,                                   -- 用户ID,使用无符号64位整数  
    `user_name` String,                                 -- 用户名  
    `event_type` LowCardinality(String),                -- 事件类型,使用 LowCardinality 优化存储和查询性能  
    `event_properties` Map(String, String),             -- 事件的属性,使用 Map 类型存储键值对  
    `ip_address` IPv4                                   -- 用户的IPv4地址  
)  
ENGINE = MergeTree()                                    -- 使用 ClickHouse 最常用和最强大的表引擎 MergeTreePARTITION BY toYYYYMM(event_date)                       -- 按年月对数据进行分区,极大提升按时间范围查询的效率  
ORDER BY (event_date, user_id);                         -- 指定表内数据的物理排序键  
  
-- 4. 插入多行示例数据  
-- 使用 INSERT INTO ... VALUES 语法  
INSERT INTO demo_db.dome_table VALUES  
    (today(), now(), 1001, 'Alice', 'login', {'source': 'web', 'country': 'USA'}, '192.168.1.10'),  
    (today(), now(), 1002, 'Bob', 'view_page', {'page_url': '/products/1', 'referrer': 'google.com'}, '203.0.113.45'),  
    (today() - 1, now() - 86400, 1001, 'Alice', 'logout', {}, '192.168.1.10'),  
    (today() - 1, now() - 76400, 1003, 'Charlie', 'signup', {'source': 'campaign_A'}, '198.51.100.2');  
  
-- 5. 查询并验证数据  
-- 从表中选择所有列,查看我们刚刚插入的数据。  
SELECT * FROM demo_db.dome_table;
bash

cat test.json | docker exec -i  clickhouse0 clickhouse-client --query="INSERT INTO http_log_db.http_logs FORMAT JSONEachRow"

vector

bash
vector validate --config-yaml /etc/vector/vector.yaml
yaml
# /etc/vector/vector.yaml
# 针对 Vector v0.41.1 的最终正确配置

# ------------------------------------------------------------------------------
# 1. 数据源 (Source): 使用 v0.41.1 的正确语法
# ------------------------------------------------------------------------------
sources:
  json_file_source:
    type: file
    include:
      - /tmp/vectortest.json
      - /tmp/vectortest1.json
      - /tmp/vectortest2.json
    # 新版本正确的参数是 start_at_beginning,值为布尔型 true
    # 使用新的推荐参数来代替 start_at_beginning
    ignore_checkpoints: true
    read_from: "beginning"

# ------------------------------------------------------------------------------
# 2. 转换器 (Transform): 使用新版本推荐的 remap 组件来解析 JSON
# ------------------------------------------------------------------------------
transforms:
  parse_json_transform:
    # 类型: 'remap' 是 v0.41.1 的标准做法
    type: "remap"
    # 输入: 来自文件数据源
    inputs:
      - json_file_source
    # 核心: 使用 VRL 语言的 parse_json 函数来解析 .message 字段
    source: '. = parse_json!(.message)'

# ------------------------------------------------------------------------------
# 3. 目的地 (Sink): Sink 的配置保持不变
# ------------------------------------------------------------------------------
sinks:
  clickhouse_sink:
    type: "clickhouse"
    # 输入: 来自 remap 转换器
    inputs:
      - parse_json_transform

    # --- ClickHouse 连接信息 ---
    endpoint: "http://113.45.186.208:8123"
    database: "http_log_db"
    table: "http_logs"

    # --- 身份验证 (v0.41.1 需要 strategy) ---
    auth:
      strategy: "basic" 
      user: "root"
      password: "zx_service_homework_l2yz"

    # --- 批处理设置 ---
    batch:
      max_events: 1000
      timeout_secs: 3
bash
sudo journalctl -u vector -f

seata

bash
docker run -d \
  --name seata0 \
  -p 8091:8091 \
  -p 7091:7091 \
  -e SEATA_SERVER_HOST=1.95.148.2 \
  seataio/seata-server:1.8.0

ubuntu

bash
sudo docker volume create ubuntu_0_volume
docker volume ls

docker run -d \
-p 14444:22 \
-v ubuntu_0_volume:/data \
--name ubuntu_0 \
ubuntu:22.04 \
sleep infinity

安装 openssh-server docker容器中不能用 systemctl 需要手动启动

bash
/usr/sbin/sshd -D

可能需要创建 /run/sshd 目录

创建新用户

bash
useradd -m -s /bin/bash $name
# 添加到sudo
usermod -aG sudo $name
# 设置密码
passwd $name

连接

bash
ssh username@ip_host -p $port