docker 启动一些常用中间件的快速方法
docker 的一些配置 ,
-H指定的docker监听的ip和端口2375 修改 /lib/systemd/system/docker.service 文件
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
重新加载配置文件
systemctl daemon-reload
service docker restart
启动常用数据库
### mongodb (4.2.5)
docker run -it -d --restart=always \
-v /data/aimind/data/mongodb/data/configdb/:/data/configdb \
-v /data/aimind/data/mongodb/data/db/:/data/db \
-m 8192m --memory-swap -1 \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME="admin" \
-e MONGO_INITDB_ROOT_PASSWORD="Y2FybWFzdGVy@2021" \
--name aimind_mongodb mongo:4.2.5 --wiredTigerCacheSizeGB 4
### mysql (5.7.27)
docker run -it -d --restart=always \
-v /data/aimind/data/mysql/data:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD="car@mysql2019" \
--name aimind_mysql mysql:5.7.27
### redis (5.0.8)
docker run -it -d --restart=always \
-v /data/aimind/redis_data:/data \
-p 6379:6379 \
-e MYSQL_ROOT_PASSWORD="car@mysql2019" \
--name aimind_redis redis:5.0.8 redis-server --requirepass vSQpDKBAbRvXRkAm/LXaWiohgVT9XAt6BAHt93yYxPw=
数据迁移
mongodump -h 127.0.0.1 --port 27017 \
--authenticationDatabase admin -u aimind -p \
Y2FybWFzdGVy@2021 --out /path
mongorestore -h 127.0.0.1 --port 27017 \
--authenticationDatabase admin -u aimind -p \
Y2FybWFzdGVy@2021 --db admin_dev /opt/admin_dev
mongo --host 127.0.0.1 --port 27017 -u "admin" -p "Y2FybWFzdGVy@2021" --authenticationDatabase "admin"
mysqldump -u root -p --all-databases > backup.sql
mysql>mysql -u root -p
> aimind@mysql2019
/# 创建car_server_app数据库
mysql> create database car_server_app;
mysql>mysql -u root -p car_server_app < aiminduc_prod.sql
docker启动一个自己的app
1. 服务启动脚本entrypoint.sh
export JAVA_OPTS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=80.0 -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof"
export JAVA_OPTS="$JAVA_OPTS -Dlog.path=logs -Djava.security.egd=file:/dev/./urandom"
java ${JAVA_OPTS} -jar "./app.war" --spring.profiles.active=${SPRING_PROFILES_ACTIVE}
2.Dockerfile文件
FROM jdk:8
MAINTAINER jadepeng <jqpeng@qq.com>
WORKDIR /home/ai
ADD target/*.war app.war
ADD target/classes/*.properties ./
ADD entrypoint.sh entrypoint.sh
RUN chmod +x entrypoint.sh
USER root
EXPOSE 8090
ENTRYPOINT ["./entrypoint.sh"]
3. Docker 启动命令
3.1 结合上文Dockerfile文件启动
docker run -d -it --restart=always -p 18090:18090 \
-v /data/ai/conf/uc/application-svw.properties:/home/ai/application-svw.properties \
-e SPRING_PROFILES_ACTIVE=svw \
--name svw_uc cs:20240612 \
java -jar /app.jar --spring.profiles.active=svw,oauth2 --server.port=18090 &
3.2 直接使用内置的配置文件启动,Dockfile文件为任意
docker run -d -it --name ocp-vw -v /logs/ocp:/logs/ocp -e JAVA_OPTS='--spring.profiles.active=test' -p 9999:9999 vw:0531