赞
踩
查看防火墙状态 systemctl status firewalld 查看开机是否启动防火墙服务 systemctl is-enabled firewalld 关闭防火墙 systemctl stop firewalld systemctl status firewalld 禁用防火墙(系统启动时不启动防火墙服务) systemctl disable firewalld systemctl is-enabled firewalld
修改配置文件
vim /etc/ssh/sshd_config
按 i 切换至编辑模式,增加新端口内容,Port 22 的注释删除即删除前面的#),并把22换成你想开放的端口
修改后保存。(Esc+:wq)
如果没有进行第一步关闭防火墙,则放行新增的端口号
firewall-cmd --add-port=新端口号/tcp --permanent
重启防火墙
systemctl restart sshd.service
使用22端口连接失败
修改安全组规则
把22改成你修改的的端口
重新连接,把ssh端口修改
再次连接成功
安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定的存储库。
yum install -y yum-utils
安装启动docker
# 使用中国大陆镜像源下载 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装最新版本的 Docker Engine 和 containerd yum install docker-ce docker-ce-cli containerd.io -y # 重新构建缓存索引 yum makecache fast # 后台启动docker systemctl start docker
测试启动docker
docker version
docker run hello-world
docker常用命令
systemctl stop docker # 停止 systemctl status docker # 查看docker状态 systemctl enable docker # 开机启动 docker info # 查看docker概要信息 docker --help # 查看docker总体帮助文档 docker 具体命令 --help # 查看docker命令帮助文档 # --name="容器新名称" # -p 指定端口映射 # -d 守护线程启动 docker run -d 镜像名 # 注意一定要配合docker ps使用! 有的不支持后台启动,造成自杀. mysql,redis一般这样使用 docker exec -it 容器id /bin/bash # 重新进入容器终端交互,启动新进程的同时打开终端.退出不会停止容器 # docker attach 容器id # 重新进入容器终端交互,不启动新进程打开终端,退出会停止容器 docker run -it [--name=cen] centos /bin/bash # 以交互式容器启动,为容器重新分配一个伪输入终端.容器名称为cen的centos镜像实例容器 yum -y update # 更新yum源 yum -y install vim # 安装所需要的vim exit # 退出交互式容器终端,容器停止; docker start 容器名或容器id # 启动已经停止运行的容器 docker restart 容器名或容器id # 重启容器 docker stop 容器名称或容器id # 停止容器 docker kill 容器名称或容器id # 强制停止容器 docker cp 容器id:容器内文件路径 目的主机路径 # 将容器内文件复制到主机上 docker cp 宿主机文件路径 <容器名称或者ID>:容器文件存放路径 # 将宿主机文件复制到容器中 docker export 容器id>文件名.tar #导出容器的内容留作为一个tar归档文件 cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
查看操作
# 我们使用REPOSITORY:TAG来定义不同的镜像 docker images # 列出本地镜像 REPOSITORY镜像源 TAG版本号 IMAGE ID镜像id CREATED创建时间 SIZE大小 docker ps # 查看当前正在运行的容器 docker ps -a # 查看所有容器 docker search 镜像名 # 搜索镜像是否在远程库 docker pull 镜像名[:TAG] # 拉取镜像到本地镜p像 # 拉取完毕一般记得刷新配置source /etc/profile docker system df # 查看镜像/容器数据卷所占空间 docker logs 容器id # 查看容器日志 docker inspect 容器id # 查看容器内部细节
删除操作
docker rmi -f 镜像名 # 删除镜像 docker rmi -f 镜像id # 强制删除镜像 docker rm 容器id # 删除已经停止的容器 docker rm -f 容器id #强制删除容器 docker rm -f $(docker ps -aq) # 删除所有容器 docker ps -a -q|xargs docker rm # 删除所有容器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://*******.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
PS:未关闭防火墙,则需要放开Nacos所需的端口。如果使用云服务器,需要开放安全组。
## 开放端口8848 9848 9849 firewall-cmd --zone=public --add-port=8848/tcp --permanent firewall-cmd --zone=public --add-port=9848/tcp --permanent firewall-cmd --zone=public --add-port=9849/tcp --permanent ## 重启防火墙 firewall-cmd --reload
在安装之前,准备一个MySQL数据库,用于将数据持久化到数据库中。
使用以下命令拉取最新的Nacos版本:
docker pull nacos/nacos-server
如果需要拉取其他版本,可以指定版本号,例如:
docker pull nacos/nacos-server:v2.2.0
创建一个目录用于挂载Nacos容器的文件,使用以下命令创建目录:
mkdir -p /mydata/nacos/conf/ mkdir -p /mydata/nacos/logs/
使用以下命令启动Nacos容器
docker run -p 8848:8848 --name nacos -d nacos/nacos-server
使用以下命令复制Nacos容器内的日志和配置文件到指定的目录:
docker cp nacos:/home/nacos/logs/ /mydata/nacos/logs/ docker cp nacos:/home/nacos/conf/ /mydata/nacos/conf/
使用以下命令删除Nacos容器:
docker rm -f nacos
7.在MySQL中创建一个新的库,命名为nacos-db
(可自定义),然后在nacos-db
库中执行下面语句,创建所需的表。
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 CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', `src_user` text COMMENT 'source user', `src_ip` varchar(50) 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, `encrypted_data_key` text NOT NULL COMMENT '秘钥', 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'; 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='增加租户字段'; 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 CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', `src_user` text COMMENT 'source user', `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', `encrypted_data_key` text NOT NULL 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'; 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 CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', `src_user` text COMMENT 'source user', `src_ip` varchar(50) 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'; 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'; 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 CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_group_id` (`group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; 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 CURRENT_TIMESTAMP, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `src_user` text, `src_ip` varchar(50) DEFAULT NULL, `op_type` char(10) DEFAULT NULL, `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', `encrypted_data_key` text NOT NULL 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='多租户改造'; 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 CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP 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, UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE ); CREATE TABLE `permissions` ( `role` varchar(50) NOT NULL, `resource` varchar(255) NOT NULL, `action` varchar(8) NOT NULL, UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE ); INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE); INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
1.配置持久化到MySQL
主要修改的是application.properties文件
## 在宿主机中修改application.properties文件 vim /mydata/nacos/conf/application.properties
文件修改的地方(修改为你对应的mysql)
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://ip:3306/nacos-db?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=root db.password=root
PS :因为我们在第三步已经复制了logs和conf到了我们的宿主机里面,那么我们可以直接修改application.properties文件映射到容器里,可以通过下面的语句来查看
## 进入到nacos容器里 docker exec -it nacos /bin/bash ## 查看application.properties文件 cat /home/nacos/conf/application.properties ## 退出容器 exit
2.启动Nacos容器
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /mydata/nacos/logs/:/home/nacos/logs -v /mydata/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server
语句讲解
docker run -d : 启动容器 -d是后台启动并返回容器id的意思
–name nacos :为容器指定一个名称
-p 8848:8848 -p 9848:9848 -p 9849:9849 : 指定端口映射,注意这里的p不能大写,大写是随机端口映射
–privileged=true : 扩大容器内的权限,将容器内的权限变为root权限,不加的话就是普通用户权限,可能会出现cannot open directory
-e JVM_XMS=256m : 为jvm启动时分配的内存
-e JVM_XMX=256m : 为jvm运行过程中分配的最大内存
-e MODE=standalone : 使用 standalone模式(单机模式),MODE值有cluster(集群)模式/standalone模式两种,MODE必须大写
-v /mydata/nacos/logs/:/home/nacos/logs : 将容器的/home/nacos/logs目录挂载到 /mydata/nacos/logs
-v /mydata/nacos/conf/:/home/nacos/conf/: 将容器的/home/nacos/conf目录挂载到 /mydata/nacos/conf
–restart=always :重启docker时,自动启动相关容器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。