微服务SpringCloud项目(二):Docker安装各

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

📖前言

心态好了,就没那么累了。心情好了,所见皆是明媚风景。
复制代码

“一时解决不了的问题,那就利用这个契机,看清自己的局限性,对自己进行一场拨乱反正。”正如老话所说,一念放下,万般自在。如果你正被烦心事扰乱心神,不妨学会断舍离。断掉胡思乱想,社区垃圾情绪,离开负面能量。心态好了,就没那么累了。心情好了,所见皆是明媚风景。

PS:为了更贴近实际我在服务器上搞这些东西,把基础搞定然后实战项目,希望后面能带给大家更优质有内容的文章

🚀第一步永远都是 安装jdk

官网下载jdk,传送门 选择下载匹配的版本,如下所示

Docker 安装各类软件

第一步永远都是 安装jdk

官网下载jdk,传送门 选择下载匹配的版本,如下所示

image.png
下载完成后通过 xftp 上传到服务器,执行如下操作(vim 后按 i 开始编辑,esc关闭编辑,输入:wq保存关闭):

vim /etc/profile
最下面加入这段:
#java
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
执行这句:
mkdir -p /usr/local/java &&  tar -xzvf jdk-8u261-linux-x64.tar.gz && mv jdk1.8.0_261 /usr/local/java && source /etc/profile
复制代码

验证是否安装成功 java -version

1631853632(1).png

Docker 搜索 Minio 镜像

docker search minio
复制代码

image.png

Docker 常用命令-- Docker 的安装我就不说了大家可以自行百度

docker ps
docker ps -a
docker rm 名称
​
# liunx 端口是否正常运行和占用
netstat -an | grep :3306
​
#查看3306端口被什么程序占用
lsof -i :3306  
​
#查看3306端口是被哪个服务使用着
netstat -tunlp | grep :3306  
​
#查找文件和库
find / -name mysql
​
#移除删除 文件夹/文件名
rm -rf 
​
#拉取镜像
# 拉取微软在 Docker 上的 aspnetcore 镜像:
​
docker pull microsoft/aspnetcore
#之后执行以下命令查看是否拉取成功:
​
docker images
​
# 删除镜像(会提示先停止使用中的容器) 
docker rmi  镜像name/镜像id
​
# 拉取镜像
docker pull
​
# 删除容器
docker rm <容器名 or ID>
​
# 查看容器日志
docker logs -f <容器名 or ID>
​
docker logs --tail="10" nginx
​
# 查看正在运行的容器
docker ps
docker ps -a # 为查看所有的容器,包括已经停止的。# 删除所有容器
docker rm $(docker ps -a -q)
​
# 停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器
docker restart 容器name/容器id #容器重启 
docker rm 容器name/容器id # 删除容器 
docker logs 容器名称/容器id # 查看容器运行日志# 查看所有镜像
docker images
​
# 拉取镜像
docker pull <镜像名:tag>
# 例如以下代码
docker pull sameersbn/redmine:latest
​
# 后台运行
docker run -d <Other Parameters>
# 例如
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
​
# 暴露端口
# 一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口# 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口# 例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口# 映射数据卷
docker -v /home/data:/opt/data # 这里/home/data 指的是宿主机的目录地址,后者则是容器的目录地址# 进入容器
docker exec -it 容器名 bash
​
mysql -uroot -p
​
use mysql;
复制代码

Docker 拉取 Minio 镜像

docker pull minio/minio
复制代码

PS:我们没有指定版本 默认拉取的镜像就是最新的版本。

Docker 启动 Minio 镜像

最近MInio更新了。

更新之前命令:

我们以前的启动命令是这样的:

docker run  -d -p 9000:9000  --name myminio -e "MINIO_ROOT_USER=minioadmin" -e "MINIO_ROOT_PASSWORD=minioadmin" -v /home/minio/data:/data minio/minio server /data
复制代码

解释:

  1. docker run :docker 启动容器命令

  2. -d :后台启动

  3. -p :端口映射

  4. --name 为这个容器取一个名字

  5. -e :设置环境变量

  6. -v :文件挂载

  7. minio/minio server /data : minio的启动命令

    (minio/minio 是镜像名字、 /data:数据存储位置)

按照原有命令启动的话,浏览器是访问不了的。

我们来通过浏览器访问 http://ip:9000,报错无法访问!!!

先停止删除容器:

docker stop <容器id> #暂停容器
docker rm <容器id> #删除停止的容器
复制代码

更新之后命令:

#最近更新的命令
docker run -d \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio1 \
  -v /home/minio/data:/data \
  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  minio/minio server /data --console-address ":9001"
复制代码

更新之后多了一个端口映射。

在这里插入图片描述

这个我在minio的官网上并没有找到原因,后来又去看github上的版本更改才发现一点头绪。需要我们指定控制台的端口映射,并且和minio server 是不同的。

github.com/minio/minio… 注:minio 的控制台也更新啦 脑阔大。 在这里插入图片描述

注意: 因为minio 控制台和minio server 需要不同的端口,一定要在阿里云或腾讯云上配置好安全组哦。一个9000 是不够了哈。 当时在官网看的原因,好像是为了更好的管理做的这个更新,等找到了原因的那个链接我再放上来(狗头🐶保命),

相关命令

命令 作用
-a 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
-w 指定容器的工作目录
-c 指定容器CPU权重, 在CPU共享场景使用
-m 指定容器的内存上限
-d 后台运行容器,并返回容器ID
-p 端口映射,格式为:宿主机端口:容器端口
-i 以交互模式运行容器,通常与 -t 同时使用
-t 为容器重新分配一个tty伪输入终端,通常与 -i 同时使用
-v 挂载数据卷
-name 为容器指定一个名称,后续可以通过名字进行容器管理
-rm 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
-h "" 指定容器的主机名
-e key=“value”,–env=[] 设置环境变量
–env-file=[] 从指定文件读入环境变量
–net="" 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型

Docker 安装 Nginx

Nginx 配置参见:Nginx传送门

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       9001;
		server_name  ip;
		
        charset utf-8; 
        location / {
            root /data/nginx/;
            index index.html;
        }

		error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
	
    # HTTPS server
    
    server {
       listen       端口 ssl;
       server_name  szdz.cncn.gov.cn;
       ssl on;
        index index.html;
		ssl_certificate      crt目录;
		ssl_certificate_key  key目录;
  		ssl_session_timeout 5m;
  		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  		ssl_prefer_server_ciphers on;
		
        location / {
           proxy_pass http://127.0.0.1:9001;
           proxy_set_header Host            $http_host;
           proxy_set_header X-Real_IP       $remote_addr;
           proxy_set_header X_Forwarded_For $proxy_add_x_forwarded_for;
		   proxy_set_header X-Forwarded-Proto $scheme;
        }
		
    }

}
复制代码

安装 Nginx

docker run -d -p 80:80 --name nginx nginx:1.17.7
mkdir -p /home/nginx/logs
docker cp nginx:/usr/share/nginx/html /home/nginx/
docker cp nginx:/etc/nginx /home/nginx/
docker cp nginx:/var/log/nginx /home/nginx/
docker stop nginx && docker rm nginx
# 映射-v /home/nginx/到/data/nginx/    -p 9091:9091 服务器端口映射docker的端口
docker run -d -p 80:80 -p 443:443 -p 8080:8080 --name nginx -v /home/nginx/nginx/:/etc/nginx -v /home/nginx/html/:/usr/share/nginx/html -v /etc/localtime:/etc/localtime -v /home/nginx/:/data/nginx/ nginx:1.17.7
复制代码
安装完成后将开启:80、443、8080端口,如需添加可以添加更多:-p 端口:映射端口
复制代码

1631854915(1).png

1631854984(1).png
查看docker的所有运行镜像:docker ps ,停止和运行的所有镜像:docker ps -a

1631855001(1).png

Docker 安装 Nacos

1、拉取镜像

docker pull nacos/nacos-server
复制代码

2、挂载目录

mkdir -p /mydata/nacos/logs/                      #新建logs目录
mkdir -p /mydata/nacos/init.d/          
vim /mydata/nacos/init.d/custom.properties        #修改配置文件
复制代码

3、mysql新建nacos的数据库,并执行脚本

下载地址

github.com/alibaba/nac…

/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info   */
/******************************************/
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   */
/*   表名称 = 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   */
/*   表名称 = 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   */
/*   表名称 = 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   */
/*   表名称 = 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_config   */
/*   表名称 = 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_config   */
/*   表名称 = 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_config   */
/*   表名称 = 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');
复制代码

4、修改配置文件custom.properties

server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=pass

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
复制代码

5、启动容器

docker  run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos/nacos-server
复制代码

liunx 安装 MYSQL 并且修改 mysql 允许远程连接

  1. mysql 配置文件:
[client]
socket          = /var/lib/mysql/mysqld.sock
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
#socket          = /var/run/mysqld/mysqld.sock
socket          = /var/lib/mysql/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
innodb_flush_log_at_trx_commit=2
symbolic-links=0
max_connections=1000
wait_timeout=86400
character_set_server=utf8
max_allowed_packet=50M
long_query_time=1
slow_query_log='ON'
default-time_zone='+8:00'
skip-name-resolve
innodb_file_per_table = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#lower_case_table_names = 1
# Custom config should go here
!includedir /etc/mysql/conf.d/
复制代码
  1. docker 命令
mkdir -p /home/mysql8/data
docker run -p 3306:3306 --name tempMysql --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.26
docker cp tempMysql:/etc/mysql/my.cnf /home/mysql8
docker stop tempMysql && docker rm tempMysql
docker run -p 3306:3306 --name mysql8 -v /home/mysql8/my.cnf:/etc/mysql/my.cnf -v /home/mysql8/data:/var/lib/mysql -v /etc/localtime:/etc/localtime --privileged=true -e MYSQL_ROOT_PASSWORD=xxx密码 -d mysql:8.0.26
复制代码

最近在 Linux 上安装了 Mysql,然后在 Windows 环境下通过 Navicat 来连接时,出现报错:1045 Access denied for user 'root'@'XXX' (using password: YES)

首先,在Linux中是可以正常登录mysql,所以不会是用户密码错误导致的。

接着,我考虑到可能与防火墙有关,于是检查了Linux下的防火墙是否开放了对应端口,发现此时的防火墙是关闭状态,因此可以排除防火墙的影响。

最后,突然想到默认情况下mysql的root用户是不能远程连接的,于是在Linux中登录mysql,发现果然是这个原因,解决过程如下:

# 进入容器
docker exec -it 容器名 bash

mysql -uroot -p

use mysql;
复制代码
  • 1.登录mysql,命令:mysql -u root -p ,然后输入密码即可。

  • 2.查看mysql库中的user表的host字段

使用mysql库:use mysql
查询信息:select user,host from user

host字段中,localhost表示只允许本机访问,要实现远程连接,可以将root用户的host改为%,%表示允许任意host访问,如果需要设置只允许特定ip访问,则应改为对应的ip。

  • 3.修改root用户的host字段,命令:update user set host="%" where user="root"
  • 4.使本次修改立即生效,命令:flush privileges

最后,在windows下的Navicat中远程连接,便不会报错了。

Docker 安装 Redis6.0.3稳定版

1. 拉取制定版本的容器:docker pull redis:6.0.3

2. 查看本地镜像

使用以下命令来查看是否已安装了 redis

docker images
复制代码

image.png

PS:可以看到我是安装了的,看下面的具体步骤

3. 创建文件夹和文件

mkdir -p /home/redis/data              【创建文件夹】
touch /home/redis/redis.conf        【创建文件】
复制代码

4. 从官网获取 redis.conf 配置文件

cd /home/redis   //进入目录
wget http://download.redis.io/redis-stable/redis.conf   //下载redis配置文件
vim redis.conf  //修改配置文件
复制代码
  • bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
  • protected-mode no #默认yes,开启保护模式,限制为本地访问
  • daemonize no #默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败
  • dir ./ #输入本地redis数据库存放文件夹(可选)
  • appendonly yes #redis持久化(可选)

5. 运行镜像

参数说明:

  • -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机 ip:6379 访问到 Redis 的服务。

  • docker run --name redis -p 6379:6379 -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass "你要设置的密码"
    复制代码

    说明

    --name redis 【容器名】
    -p 6379:6379 【映射端口】
    -v /usr/local/app/redis/redis.conf:/etc/redis/redis.conf 【conf文件挂载目录】
    -v /usr/local/app/redis/data:/data 【data挂载目录】
    -d redis:版本号 【后台运行镜像】
    --restart=always 【docker重启后自动启动镜像】
    redis-server /etc/redis/redis.conf 【在容器执行redis-server启动命令,执行conf文件】
    --appendonly yes 【持久化】
    --requirepass "你要设置的密码" 【设置密码】
    复制代码

6. 进入容器

docker exec -it redis bash 【进入容器】
redis-cli 【连接】
auth 设置的密码 【登录】
set hello world
get hello
复制代码

查看docker的所有运行镜像:docker ps ,停止和运行的所有镜像:docker ps -a


🎉总结:

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!