Loading

Docker中间件安装

Docker安装

uname -r
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y 
systemctl start docker
systemctl enable docker
docker version 
docker images

docker 自启动

一、docker服务设置自动启动

systemctl list-units --type=service        查看已启动的服务
systemctl list-unit-files | grep enable    查看是否设置开机启动
systemctl enable docker.service    设置开机启动
systemctl disable docker.service    关闭开机启动

二、docker容器设置自动启动

启动时加--restart=always

Flag    Description
no        不自动重启容器. (默认value)
on-failure     容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped     在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always     在容器已经stop掉或Docker stoped/restarted的时候才重启容器

docker run -tid --name isaler_v0.0.11 -p 8081:8080 --restart=always -v

设置容器自启

docker update --restart=always 容器名称

 

Docker安装mysql

docker pull mysql:8.4.3


docker images 

mkdir -p /opt/soft/mysql/data 
mkdir -p /opt/soft/mysql/conf/my.cnf 
touch my.cnf 

将以下内容粘入

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
default-time_zone = '+8:00'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
docker run -p 3306:3306 \
--name mysql -v /opt/soft/mysql/logs:/logs \
-v /opt/soft/mysql/data:/mysql_data \
-e MYSQL_ROOT_PASSWORD=zzhkj123+ -d mysql:8.4.3
docker exec -it mysql bash 

mysql -uroot -p 

CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'admin'@'%'; 
flush privileges; 

docker ps 查看启动状态

navicat直接连接即可,云服务器需要开启防火墙

Maven配置国内源

注意:maven一定要放到Jenkins的数据挂载目录内,这样容器才能读到。参考开发工具选型里面的maaven包。
在我们的maven的conf的setting的mirrors里面进行配置,配置后,Jenkins下载包会非常的快,慢的小伙伴可以配置这个。

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

 

Docker安装Jenkins

docker search jenkins
docker pull jenkins/jenkins:lts
docker run -d -u root -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:lts
docker start jenkins

这样就是启动成功了。然后通过8080端口进行访问。访问的过程会很慢等待一下。
完事之后,通过log来看一下密码

访问之后,输入上面的密码。

点击继续后,选择 按照推荐安装插件。然后继续等待。

上面输入任务名称,下面选择构建自由风格

 

 

注意:maven一定要放到Jenkins的数据挂载目录内,这样容器才能读到。参考开发工具选型里面的maaven包。

 

 

设置密码

 

 

cp /var/jenkins_home/workspace/jc-club-subject/jc-club-subject/jc-club-starter/target/jc-club-starter.jar /var/jenkins_home/jar/
#!/bin/bash
APP_NAME=jc-club-starter.jar
LOG_NAME=jc-club-starter.log

pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`

function is_exist(){
pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`
if [ -z ${pid} ]; then
String="notExist"
echo $String
else
String="exist"
echo $String
fi
}

str=$(is_exist)
if [ ${str} = "exist" ]; then
echo " 检测到已经启动的程序,pid 是 ${pid} "
kill -9 $pid
else
echo " 程序没有启动了 "
echo "${APP_NAME} is not running"
fi

str=$(is_exist)
if [ ${str} = "exist" ]; then
echo "${APP_NAME} 已经启动了. pid=${pid} ."
else
source /etc/profile
BUILD_ID=dontKillMe
nohup java -Xms300m -Xmx300m -jar /var/jenkins_home/jar/$APP_NAME   >$LOG_NAME 2>&1 &
echo "程序已重新启动..."
fi

保存后,界面出现工程

 


点击右侧小箭头进行自动部署。
点击项目名称,可以进入详细界面。


点击16可查看项目构建的详细日志。

yum安装jdk

yum -y list java*


yum install -y java-1.8.0-openjdk.x86_64

查询java版本

java -version

Docker安装minio

docker search minio

docker pull minio/minio
docker run -p 9000:9000 -p 9090:9090 \
 --name minio \
 -d --restart=always \
 -e "MINIO_ACCESS_KEY=minioadmin" \
 -e "MINIO_SECRET_KEY=minioadmin" \
 -v /mydata/minio/data:/data \
 minio/minio server \
 /data --console-address ":9090" -address ":9000"

Docker安装miniomc突破7天限制

docker pull minio/mc

docker run -it --entrypoint=/bin/sh minio/mc

mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]

mc config host add minio http://117.72.14.166:9000 GrVCPXySKgGoJiGgXmtv 0xlqSI9GXvnBOtp0GwUj5OshKNBk9JgwoexotbVV

mc ls minio

mc anonymous

mc anonymous set download minio/jichi

 

Docker查看运行容器启动命令

有时候,我们想查看已经启动的容器,当时执行的时候到底是什么命令,需要安装一个小工具 get_command_4_run_container

docker pull cucker/get_command_4_run_container
# 以nacos为例子
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run_container nacos

执行完后,我们就会看到如下的启动命令

docker run -d \ 
--name nacos \ 
--privileged \ 
--cgroupns host \ 
--env JVM_XMX=256m \ 
--env MODE=standalone \ 
--env JVM_XMS=256m \ 
-p 8848:8848/tcp \ 
-p 9848:9848/tcp \ 
--restart=always \ 
-w /home/nacos \ 
nacos/nacos-server

 

Docker安装nacos

docer search nacos
docer pull nacos/nacos-server
# 镜像拉完之后,启动脚本
docker run -d \
  --name nacos \
  --privileged  \
  --cgroupns host \
  --env JVM_XMX=256m \
 --env MODE=standalone \
  --env JVM_XMS=256m \
  -p 8848:8848/tcp \
  -p 9848:9848/tcp \
  --restart=always \
  -w /home/nacos \
  nacos/nacos-server

访问 ip 地址+8848 /nacos 即可进入控制台

 

nacos 的文档:https://nacos.io/zh-cn/docs/what-is-nacos.html

nacos 的架构原理:https://developer.aliyun.com/ebook/36?spm=a2c6h.20345107.ebook-index.18.152c2984fsi5ST

 
Docker安装Redis拉下镜像之后,点击下面地址选择自己需要的 redis 版本的配置文件,也可以直接使用鸡哥的。
 
redis.conf(105 KB)
提前在服务器建立 /data/redis 文件夹,touch 文件redis.conf,也可以上面的直接复制-p 6379:6379:把容器内的6379端口映射到宿主机6379端口 -v /data/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中 -v /data/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动 –appendonly yes:redis启动后数据持久化Docker查看运行容器启动命令有时候,我们想查看已经启动的容器,当时执行的时候到底是什么命令,需要安装一个小工具 get_command_4_run_container执行完后,我们就会看到如下的启动命令 1执行完后,我们就会看到如下的启动命令docker安装xxljob docker安装es 启动成功之后,访问http://117.72.14.166:9200/
 
看到这个就证明成功了!插件:es-headdocker安装RMQdocker 安装Maven仓库docker 安装 Ftpdocker安装pg可以先下载 注意此脚本路径 应该与源码pgvector目录同级
 
 
 
#!/bin/bash
 
build-essential \
postgresql-server-dev-15 \
llvm-13 \
clang
 
# 复制本地pgvector代码
COPY pgvector /tmp/pgvector
 
# 编译并安装pgvector
RUN cd /tmp/pgvector && \
make && \
make install
 
# 创建初始化脚本来启用扩展
RUN echo "CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS postgis;" > /docker-entrypoint-initdb.d/10-init-extensions.sql
 
# 清理
RUN apt-get remove -y build-essential postgresql-server-dev-15 && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/pgvector
EOF
 
echo -e "${GREEN}Dockerfile已创建${NC}"
 
# 步骤4: 构建新镜像
echo -e "${YELLOW}步骤4: 构建新的PostgreSQL 15 + PostGIS + pgvector镜像...${NC}"
docker build -t postgres15-pgvector-postgis $BUILD_DIR
 
if [ $? -ne 0 ]; then
echo -e "${RED}镜像构建失败! 请检查错误信息${NC}"
exit 1
fi
echo -e "${GREEN}镜像构建成功${NC}"
 
# 步骤5: 启动新容器
echo -e "${YELLOW}步骤5: 启动新的PostgreSQL 15容器...${NC}"
docker run --name $NEW_CONTAINER \
-e POSTGRES_PASSWORD=$PG_PASSWORD \
-v $DATA_DIR:/var/lib/postgresql/data \
-p 5432:5432 \
-d postgres15-pgvector-postgis
 
if [ $? -ne 0 ]; then
echo -e "${RED}启动新容器失败! 请检查错误信息${NC}"
exit 1
fi
echo -e "${GREEN}新容器已启动${NC}"
 
# 步骤6: 等待PostgreSQL启动
echo -e "${YELLOW}步骤6: 等待PostgreSQL 15启动...${NC}"
sleep 10
MAX_TRIES=30
TRIES=0
 
while ! docker exec -it $NEW_CONTAINER pg_isready -U postgres > /dev/null 2>&1; do
echo "等待PostgreSQL启动... ($TRIES/$MAX_TRIES)"
sleep 2
TRIES=$((TRIES+1))
 
if [ $TRIES -ge $MAX_TRIES ]; then
echo -e "${RED}PostgreSQL启动超时!${NC}"
exit 1
fi
done
echo -e "${GREEN}PostgreSQL 15已启动${NC}"
 
# 步骤7: 验证扩展安装
echo -e "${YELLOW}步骤7: 验证扩展安装...${NC}"
docker exec -it $NEW_CONTAINER psql -U postgres -c "\dx"
 
# 步骤8: 测试pgvector功能
echo -e "${YELLOW}步骤8: 测试pgvector功能...${NC}"
docker exec -it $NEW_CONTAINER psql -U postgres -c "
CREATE TABLE IF NOT EXISTS vector_test (id bigserial PRIMARY KEY, embedding vector(3));
INSERT INTO vector_test (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
SELECT * FROM vector_test ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
"
 
# 步骤9: 测试PostGIS功能
echo -e "${YELLOW}步骤9: 测试PostGIS功能...${NC}"
docker exec -it $NEW_CONTAINER psql -U postgres -c "
CREATE TABLE IF NOT EXISTS spatial_test (id serial PRIMARY KEY, geom geometry(Point, 4326));
INSERT INTO spatial_test (geom) VALUES (ST_SetSRID(ST_MakePoint(-71.064544, 42.28787), 4326));
SELECT ST_AsText(geom) FROM spatial_test;
"
 
# 清理构建上下文
echo -e "${YELLOW}清理构建上下文...${NC}"
rm -rf $BUILD_DIR
 
echo -e "${GREEN}===== 迁移完成! =====${NC}"
echo -e "${YELLOW}注意: 此脚本未恢复原有数据。如需恢复数据,请手动执行备份和恢复操作。${NC}"
 
 
 
 
 
 
 
 
 
 
posted @ 2026-10-15 09:19  丨渍丨  阅读(2)  评论(0)    收藏  举报