Docker部署常用的服务
AI-摘要
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
- 可以选择加载现成的镜像,也可以使用pull命令在线下载
# 把原有容器生成镜像
docker commit 容器名 自定义一个镜像名称
# 备份原有镜像
docker save -o 随便起名.rar 自定义的镜像名称
# 加载备份的镜像
docker load -i 随便起名.rar
1、prtainer
# 运行
docker run -di \
-p 10001:9000 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer
2、mysql
- 先在创建一个文件 /root/mysql/my.cnf 并把要修改的配置信息,在my.cnf中写好
docker run -di \
--name=mysql \
--restart=always \
-p 3306:3306 \
-v /root/mysql/logs:/logs \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql
3、nacos集群
- nacos集群,并使用nginx代理
# 在mysql数据库中创建nacos库,运行nacos下的confg目录下的sql文件 nacos-mysql.sql
- 编写docker-compose.yaml
# 切换到nacos目录
cd /apps/nacos
# 创建docker-compose.yaml文件
touch docker-compose.yaml
# 写docker-compose.yaml文件信息
vim docker-compose.yaml
- docker-compose.yaml
注意MYSQL_SERVICE_*相关为数据库配置
nacos-nginx的volumes为挂载读取同目录下的nginx.conf配置
version: "3"
services:
nacos-cluster-1:
container_name: nacos-server01
hostname: nacos-server01
image: nacos/nacos-server:2.0.3
environment:
- MODE=cluster
- PREFER_HOST_MODE=hostname
- NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=101.42.152.102
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=root
- JVM_XMS=128m
- JVM_XMX=256m
- JVM_XMN=128m
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8845:8848"
restart: always
nacos-cluster-2:
container_name: nacos-server02
hostname: nacos-server02
image: nacos/nacos-server:2.0.3
environment:
- MODE=cluster
- PREFER_HOST_MODE=hostname
- NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=101.42.152.102
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=root
- JVM_XMS=128m
- JVM_XMX=256m
- JVM_XMN=128m
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8846:8848"
restart: always
nacos-cluster-3:
container_name: nacos-server03
hostname: nacos-server03
image: nacos/nacos-server:2.0.3
environment:
- MODE=cluster
- PREFER_HOST_MODE=hostname
- NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=101.42.152.102
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=root
- JVM_XMS=128m
- JVM_XMX=256m
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8847:8848"
restart: always
nginx:
image: nginx:latest
restart: always
ports:
- "8848:80"
volumes:
- /data/soft/nacos_cluster/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /data/soft/nacos_cluster/nginx/conf/conf.d:/etc/nginx/conf.d
- /data/soft/nacos_cluster/nginx/log:/var/log/nginx
- /data/soft/nacos_cluster/nginx/html:/usr/share/nginx/html
depends_on:
- nacos-cluster-1
- nacos-cluster-2
- nacos-cluster-3
- 修改nginx.confg配置文件
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
stream
{
upstream nacos {
server 101.42.152.102:8845;
server 101.42.152.102:8846;
server 101.42.152.102:8847;
}
server {
listen 80;
proxy_pass nacos;
}
}
4、elasticsearch
- 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:
docker network create es-net
docker network ls
- 单点搭建
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.4.0_apk
5、kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.4.0_apk
6、MinIO
docker run -p 9000:9000 \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minio" \
-e "MINIO_SECRET_KEY=minio123" \
-v /home/data:/data \
-v /home/config:/root/.minio \
minio_apk server /data
- 参数说明
-e "MINIO_ACCESS_KEY=minio" \ #用户名
-e "MINIO_SECRET_KEY=minio123" \ #密码
7、Zookeeper
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14_apk
8、kafka
docker run -d --name kafka \
--env KAFKA_ADVERTISED_HOST_NAME=101.42.152.102 \
--env KAFKA_ZOOKEEPER_CONNECT=101.42.152.102:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://101.42.152.102:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" \
--net=host wurstmeister/kafka:2.12-2.3.1_apk
- 参数说明
--env KAFKA_ADVERTISED_HOST_NAME=101.42.152.102 \ #ip都改成自己的
--env KAFKA_ZOOKEEPER_CONNECT=101.42.152.102:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://101.42.152.102:9092 \
9、Redis
- Redis使用在线拉取
# 拉取
docker pull redis
# 运行
docker run -itd --name redis -p 6379:6379 \
--privileged=true \
-v /redis/data:/data --restart always redis \
--appendonly yes --requirepass "123456"
- 参数说明
–restart always #遇错总是重启
–appendonly yes #启动持久化
–requirepass "123456" #需要密码
10、MongDB
docker run -di --name mongo -p 27017:27017 -v ~/data/mongodata:/data mongo_apk
11、XXL-Job
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://101.42.152.102:3306/leadnews_xxl_job?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=root \
--spring.datasource.password=root" \
-p 8888:8080 -v /tmp:/data/applogs \
--name xxl-job-admin --restart=always -d xuxueli/xxl-job-admin:2.3.0_apk
12、seata
docker run -di --name seata-server \
-p 8091:8091 \
-e SEATA_IP=101.42.152.102 \
seata_apk
- 参数
-e SEATA_IP=101.42.152.102 \ #换成自己的ip
13、Neo4j
- 在/root/app(目录自定)下创建多个目录
cd /root/app
mkdir neo4j
cd neo4j
mkdir data
mkdir logs
mkdir conf
mkdir import
- 创建容器
docker run -d --name neo4j \
-p 7474:7474 -p 7687:7687 \
-v /home/neo4j/data:/root/app/neo4j/data \
-v /home/neo4j/logs:/root/app/neo4j/logs \
-v /home/neo4j/conf:/root/app/neo4j/conf \
-v /home/neo4j/import:/root/app/neo4j/import \
--env NEO4J_AUTH=neo4j/123456 \
neo4j
- 参数
docker run -d --name neo4j \ //-d表示容器后台运行 --name指定容器名字
-p 7474:7474 -p 7687:7687 \ //映射容器的端口号到宿主机的端口号
-v /home/neo4j/data:/data \ //把容器内的数据目录挂载到宿主机的对应目录下
-v /home/neo4j/logs:/logs \ //挂载日志目录
-v /home/neo4j/conf:/var/lib/neo4j/conf \ //挂载配置目录
-v /home/neo4j/import:/var/lib/neo4j/import \ //挂载数据导入目录
--env NEO4J_AUTH=neo4j/123456 \ //设定数据库的名字的访问密码
neo4j //指定使用的镜像
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 leaflei
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果