写在前面:docker安装自行百度;部分目录自行创建
一、docker 安装redis
- 下载redis默认配置文件
wget https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf
- 配置文件redis.conf 修改 (改之前备份默认配置)
注释 bind 127.0.0.1 protected-mode yes 修改成 protected-mode no 添加 requirepass yourpassword
- 执行命令
docker run --restart=always --name redis -p 6379:6379 -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
二、docker 安装nginx
- 拉去最新版nginx镜像
docker pull nginx
- 启动nginx 镜像
docker run --name nginx -d -p 80:80 nginx
- 宿主机创建所用到的目录
mkdir -p /usr/local/docker/nginx/html /usr/local/docker/nginx/logs /usr/local/docker/nginx/html/conf
- 将已启动容器的默认配置文件拷贝一份到宿主机
docker cp 6355d1a52138:/etc/nginx/nginx.conf /usr/local/docker/nginx/conf/
- 将默认启动页拷贝一份到宿主机
docker cp 6355d1a52138:/usr/share/nginx/html/index.html /usr/local/docker/nginx/html/
- 执行命令
docker run --restart=always --name nginx -p 80:80 -d -v /usr/local/docker/nginx/html:/usr/share/nginx/html -v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/docker/nginx/logs:/var/log/nginx nginx
三、docker 安装mongo
-
拉去最新版mongo镜像
docker pull mongo
-
添加配置文件mongod.conf
# 数据库文件存储位置 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
-
启动镜像
docker run --restart=always --name mongo -p 27017:27017 -d -v /usr/local/docker/mongo/conf:/data/configdb -v /usr/local/docker/mongo/data:/data/db -v /usr/local/docker/mongo/logs:/data/log/ --privileged mongo -f /data/configdb/mongod.conf
四、docker安装mysql
-
拉去镜像(5.7最新版)
docker pull mysql:5.7
-
执行命令
docker run --restart=always --name mysql -p 3306:3306 -d -v /usr/local/docker/mysql/conf:/etc/mysql/conf.d -v /usr/local/docker/mysql/data:/var/lib/mysql -v /usr/local/docker/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=1qaz@WSX mysql:5.7
-
修改时间(可选)
1.宿主机在/etc目录下查询是否存在localtime文件或者软连接 如果不存在 /usr/share/zoneinfo/Asia/Shanghai拷贝一份 或者建立软连接都行 2.mysql容器启动成功如果发现时间不正确在容器内执行: ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 或者 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 3.重启容器即可
五、docker安装nacos
-
拉取镜像
docker pull nacos/nacos-server
-
增加配置文件custom.properties 选用mysql存储
server.contextPath=/nacos server.servlet.contextPath=/nacos server.port=8848 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://192.168.1.10:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=password nacos.cmdb.dumpTaskInterval=3600 nacos.cmdb.eventTaskInterval=10 nacos.cmdb.labelTaskInterval=300 nacos.cmdb.loadDataAtStart=false management.metrics.export.elastic.enabled=false management.metrics.export.influx.enabled=false server.tomcat.accesslog.enabled=true server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/** nacos.naming.distro.taskDispatchThreadCount=1 nacos.naming.distro.taskDispatchPeriod=200 nacos.naming.distro.batchSyncKeyCount=1000 nacos.naming.distro.initDataRatio=0.9 nacos.naming.distro.syncRetryDelay=5000 nacos.naming.data.warmup=true nacos.naming.expireInstance=true
-
创建nacos数据库并执行sql脚本
create table `config_info` ( `id` bigint(20) not null auto_increment comment 'id', `data_id` varchar(255) not null comment 'data_id', `group_id` varchar(255) default null, `content` longtext not null comment 'content', `md5` varchar(32) default null comment 'md5', `gmt_create` datetime not null default '2010-05-05 00:00:00' comment '创建时间', `gmt_modified` datetime not null default '2010-05-05 00:00:00' comment '修改时间', `src_user` text comment 'source user', `src_ip` varchar(20) default null comment 'source ip', `app_name` varchar(128) default null, `tenant_id` varchar(128) default '' comment '租户字段', `c_desc` varchar(256) default null, `c_use` varchar(64) default null, `effect` varchar(64) default null, `type` varchar(64) default null, `c_schema` text, primary key (`id`), unique key `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='config_info'; /******************************************/ /* 数据库全名 = nacos */ /* 表名称 = config_info_aggr */ /******************************************/ create table `config_info_aggr` ( `id` bigint(20) not null auto_increment comment 'id', `data_id` varchar(255) not null comment 'data_id', `group_id` varchar(255) not null comment 'group_id', `datum_id` varchar(255) not null comment 'datum_id', `content` longtext not null comment '内容', `gmt_modified` datetime not null comment '修改时间', `app_name` varchar(128) default null, `tenant_id` varchar(128) default '' comment '租户字段', primary key (`id`), unique key `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='增加租户字段'; /******************************************/ /* 数据库全名 = nacos */ /* 表名称 = config_info_beta */ /******************************************/ create table `config_info_beta` ( `id` bigint(20) not null auto_increment comment 'id', `data_id` varchar(255) not null comment 'data_id', `group_id` varchar(128) not null comment 'group_id', `app_name` varchar(128) default null comment 'app_name', `content` longtext not null comment 'content', `beta_ips` varchar(1024) default null comment 'betaIps', `md5` varchar(32) default null comment 'md5', `gmt_create` datetime not null default '2010-05-05 00:00:00' comment '创建时间', `gmt_modified` datetime not null default '2010-05-05 00:00:00' comment '修改时间', `src_user` text comment 'source user', `src_ip` varchar(20) default null comment 'source ip', `tenant_id` varchar(128) default '' comment '租户字段', primary key (`id`), unique key `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='config_info_beta'; /******************************************/ /* 数据库全名 = nacos */ /* 表名称 = config_info_tag */ /******************************************/ create table `config_info_tag` ( `id` bigint(20) not null auto_increment comment 'id', `data_id` varchar(255) not null comment 'data_id', `group_id` varchar(128) not null comment 'group_id', `tenant_id` varchar(128) default '' comment 'tenant_id', `tag_id` varchar(128) not null comment 'tag_id', `app_name` varchar(128) default null comment 'app_name', `content` longtext not null comment 'content', `md5` varchar(32) default null comment 'md5', `gmt_create` datetime not null default '2010-05-05 00:00:00' comment '创建时间', `gmt_modified` datetime not null default '2010-05-05 00:00:00' comment '修改时间', `src_user` text comment 'source user', `src_ip` varchar(20) default null comment 'source ip', primary key (`id`), unique key `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='config_info_tag'; /******************************************/ /* 数据库全名 = nacos */ /* 表名称 = config_tags_relation */ /******************************************/ create table `config_tags_relation` ( `id` bigint(20) not null comment 'id', `tag_name` varchar(128) not null comment 'tag_name', `tag_type` varchar(64) default null comment 'tag_type', `data_id` varchar(255) not null comment 'data_id', `group_id` varchar(128) not null comment 'group_id', `tenant_id` varchar(128) default '' comment 'tenant_id', `nid` bigint(20) not null auto_increment, primary key (`nid`), unique key `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), key `idx_tenant_id` (`tenant_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='config_tag_relation'; /******************************************/ /* 数据库全名 = nacos */ /* 表名称 = group_capacity */ /******************************************/ create table `group_capacity` ( `id` bigint(20) unsigned not null auto_increment comment '主键ID', `group_id` varchar(128) not null default '' comment 'Group ID,空字符表示整个集群', `quota` int(10) unsigned not null default '0' comment '配额,0表示使用默认值', `usage` int(10) unsigned not null default '0' comment '使用量', `max_size` int(10) unsigned not null default '0' comment '单个配置大小上限,单位为字节,0表示使用默认值', `max_aggr_count` int(10) unsigned not null default '0' comment '聚合子配置最大个数,,0表示使用默认值', `max_aggr_size` int(10) unsigned not null default '0' comment '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', `max_history_count` int(10) unsigned not null default '0' comment '最大变更历史数量', `gmt_create` datetime not null default '2010-05-05 00:00:00' comment '创建时间', `gmt_modified` datetime not null default '2010-05-05 00:00:00' comment '修改时间', primary key (`id`), unique key `uk_group_id` (`group_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='集群、各Group容量信息表'; /******************************************/ /* 数据库全名 = nacos */ /* 表名称 = his_config_info */ /******************************************/ create table `his_config_info` ( `id` bigint(64) unsigned not null, `nid` bigint(20) unsigned not null auto_increment, `data_id` varchar(255) not null, `group_id` varchar(128) not null, `app_name` varchar(128) default null comment 'app_name', `content` longtext not null, `md5` varchar(32) default null, `gmt_create` datetime not null default '2010-05-05 00:00:00', `gmt_modified` datetime not null default '2010-05-05 00:00:00', `src_user` text, `src_ip` varchar(20) default null, `op_type` char(10) default null, `tenant_id` varchar(128) default '' comment '租户字段', primary key (`nid`), key `idx_gmt_create` (`gmt_create`), key `idx_gmt_modified` (`gmt_modified`), key `idx_did` (`data_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='多租户改造'; /******************************************/ /* 数据库全名 = nacos */ /* 表名称 = tenant_capacity */ /******************************************/ create table `tenant_capacity` ( `id` bigint(20) unsigned not null auto_increment comment '主键ID', `tenant_id` varchar(128) not null default '' comment 'Tenant ID', `quota` int(10) unsigned not null default '0' comment '配额,0表示使用默认值', `usage` int(10) unsigned not null default '0' comment '使用量', `max_size` int(10) unsigned not null default '0' comment '单个配置大小上限,单位为字节,0表示使用默认值', `max_aggr_count` int(10) unsigned not null default '0' comment '聚合子配置最大个数', `max_aggr_size` int(10) unsigned not null default '0' comment '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', `max_history_count` int(10) unsigned not null default '0' comment '最大变更历史数量', `gmt_create` datetime not null default '2010-05-05 00:00:00' comment '创建时间', `gmt_modified` datetime not null default '2010-05-05 00:00:00' comment '修改时间', primary key (`id`), unique key `uk_tenant_id` (`tenant_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='租户容量信息表'; create table `tenant_info` ( `id` bigint(20) not null auto_increment comment 'id', `kp` varchar(128) not null comment 'kp', `tenant_id` varchar(128) default '' comment 'tenant_id', `tenant_name` varchar(128) default '' comment 'tenant_name', `tenant_desc` varchar(256) default null comment 'tenant_desc', `create_source` varchar(32) default null comment 'create_source', `gmt_create` bigint(20) not null comment '创建时间', `gmt_modified` bigint(20) not null comment '修改时间', primary key (`id`), unique key `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), key `idx_tenant_id` (`tenant_id`) ) engine=innodb default charset=utf8 collate=utf8_bin comment='tenant_info'; create table users ( username varchar(50) not null primary key, password varchar(500) not null, enabled boolean not null ); create table roles ( username varchar(50) not null, role varchar(50) not null, constraint uk_username_role unique (username,role) ); create table permissions ( role varchar(50) not null, resource varchar(512) not null, action varchar(8) not null, constraint uk_role_permission unique (role,resource,action) ); insert into users (username, password, enabled) values ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', true); insert into roles (username, role) values ('nacos', 'ROLE_ADMIN');
-
执行docker命令
docker run --restart=always --name nacos -p 8848:8848 -d -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /usr/local/docker/nacos/logs:/usr/docker/data/nacos/logs -v /usr/local/docker/nacos/init.d/custom.properties:/usr/docker/data/nacos/init.d/custom.properties nacos/nacos-server
五、docker安装postgresql
-
拉去镜像
docker pull postgresql:12.0
-
创建挂载目录
-
启动容器
docker run --restart=always --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -v /usr/local/docker/postgresql/data:/var/lib/postgresql/data -d postgres:12.0
六、docker安装elk
https://blog.csdn.net/weixin_45103378/article/details/117032750
七、docker安装minio
docker run --privileged -d -it -p 9000:9000 -p 9111:9111 --name minio -e "MINIO_ROOT_USER=minioadmin" --privileged=true -e "MINIO_ROOT_PASSWORD=minio@123456" -v /usr/local/docker/minio/data:/data -v /usr/local/docker/minio/config:/root/.minio e31e0721a96b server /data --console-address ":9111" -address ":9000"