Ubuntu配置基本环境以及docker安装基本中间件

这篇具有很好参考价值的文章主要介绍了Ubuntu配置基本环境以及docker安装基本中间件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:ip地址请改为自己的本地ip
为了安全性,建议都给一些中间件设置密码(本文也会教大家如何设置密码)

安装vim

sudo apt install vim

此处如果安装失败,apt要换源。

安装docker

docker版本为24.0.2

首先,更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

使用下面的 curl 导入源仓库的 GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将 Docker APT 软件源添加到你的系统:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

现在,Docker 软件源被启用了,你可以安装软件源中任何可用的 Docker 版本。

想要安装 Docker 最新版本,运行下面的命令。如果你想安装指定版本,跳过这个步骤,并且跳到下一步。

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

一旦安装完成,Docker 服务将会自动启动。你可以输入下面的命令,验证它:

sudo systemctl status docker

输出将会类似下面这样:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-05-21 14:47:34 UTC; 42s ago
...

当一个新的 Docker 发布时,你可以使用标准的sudo apt update && sudo apt upgrade流程来升级 Docker 软件包。

如果你想阻止 Docker 自动更新,锁住它的版本:

sudo apt-mark hold docker-ce

默认情况下,只有 root 或者 有 sudo 权限的用户可以执行 Docker 命令。

想要以非 root 用户执行 Docker 命令,你需要将你的用户添加到 Docker 用户组,该用户组在 Docker CE 软件包安装过程中被创建。想要这么做,输入:

sudo usermod -aG docker $USER

$USER是一个环境变量,代表当前用户名。

登出,并且重新登录,以便用户组会员信息刷新。

想要验证 Docker 是否已经成功被安装,你可以执行docker命令,前面不需要加`sudo, 我们将会运行一个测试容器:

docker container run hello-world

如果本地没有该镜像,这个命令将会下载测试镜像,在容器中运行它,打印出 “Hello from Docker”,并且退出。

安装mysql

mysql版本为8.0.35

docker search mysql
docker pull mysql:8.0 #拉取指定版本容器
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0

为了暴露端口以便连接数据库,需要开放端口权限:

sudo iptables-save 
sudo apt-get install iptables
sudo apt-get install iptables-persistent
sudo ufw status  #查看防火墙状态,如果是inactive即可

安装Redis

redis版本为7.2.3

创建文件夹存放redis配置文件以及以后的容器的配置文件,路径:/opt/app/

docker search redis
docker pull redis 

docker run --name redis -p 6379:6379 \
-v /opt/app/redis/redis.conf:/etc/redis/redis.conf \
-v /opt/app/redis/data:/data \
-d --restart=always redis redis-server /etc/redis/redis.conf \
--appendonly yes \
--requirepass "password123"

说明:
--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:5.0 【后台运行镜像】
--restart=always 【docker重启后自动启动镜像】
redis-server /etc/redis/redis.conf 【在容器执行redis-server启动命令,执行conf文件】
--appendonly yes 【持久化】
--requirepass "root" 【设置密码】

安装nginx

nginx配置文件路径:/opt/app/nginx/conf/nginx.conf

配置好nginx.conf

user  root;
worker_processes  1;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {

    include  /etc/nginx/mime.types;

    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    #sendfile  on;

    #tcp_nopush  on;
 
    keepalive_timeout  65;
 
    autoindex  on;
    
    gzip  on;
 
    client_max_body_size 100M;
 
    client_header_buffer_size  128k;

    large_client_header_buffers  4  128k;

    include  /etc/nginx/conf.d/*.conf;
}

ps:为了以后方便,将app文件夹放开权限。sudo chmod 777 * -R

将 default.conf 配置文件放在 /nginx/conf/conf.d 下

server {

    listen  80;

    server_name  localhost;

    charset koi8-r;

    access_log  /var/log/nginx/access.log  main;

    location / {
        root  /usr/share/nginx/html;
        index  index.html;
    }

    error_page  500 502 503 504  /50x.html;

    location = /50x.html {
        root  /usr/share/nginx/html;
    }

}

在nginx目录创建html文件夹,vim index.html

<html>
<h1>Nginx!!!</h1>
</html>

注意:需要指定nginx编码格式为utf-8,否则可能中文会乱码,配置文件案例:

    server {
        listen 80;
        set $root F:/Develop/nginx-1.14.0/html;
        root $root; 
	server_name  localhost;
        access_log  logs/host.access.log  main;
        index index.html index.php;
        #设置字符集
        charset utf-8;
 
        location / {
            root html;
            index index.html index.htm;
            charset utf-8;
        }
    }   

通过命令启动容器

docker pull nginx

docker run \
    --name nginx \
    -d -p 80:80 \
    -v /opt/app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    -v /opt/app/nginx/conf/conf.d:/etc/nginx/conf.d \
    -v /opt/app/nginx/html:/usr/share/nginx/html \
    -v /opt/app/nginx/log:/var/log/nginx \
    nginx

安装nacos

nacos版本为2.3.0

在/opt/app/nacos新建logs和conf文件夹。

docker pull nacos/nacos-server
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

#复制文件
docker cp nacos:/home/nacos/logs/ /opt/app/nacos/
docker cp nacos:/home/nacos/conf/ /opt/app/nacos/

#然后先删除容器
docker rm -f nacos
#这一步启动nacos是为了将nacos里面的文件拷贝出到挂载目录中,这样我们就可以直接修改挂载目录中文件来映射到容器里面去了

新建nacos数据库(字符集:utf8mb4),导入nacos所需的表:

/*
 * 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 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';

/******************************************/
/*   数据库全名 = 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 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';

/******************************************/
/*   数据库全名 = 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 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';

/******************************************/
/*   数据库全名 = 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 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容量信息表';

/******************************************/
/*   数据库全名 = 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 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='多租户改造';


/******************************************/
/*   数据库全名 = 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 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');

修改application.properties配置文件:

# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.error.include-message=ALWAYS
# default current work dir
server.tomcat.basedir=file:.
#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}
spring.sql.init.platform=${SPRING_DATASOURCE_PLATFORM:}
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:ip}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST:ip}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user=${MYSQL_SERVICE_USER:root}
db.password=${MYSQL_SERVICE_PASSWORD:password}
## DB connection pool settings
db.pool.config.connectionTimeout=${DB_POOL_CONNECTION_TIMEOUT:30000}
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
### The default token:需要配置token 这样nacos需要登录密码
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:example}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:example}
## spring security config
### turn off security
nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.naming.distro.taskDispatchThreadCount=10
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.console.ui.enabled=true
nacos.core.param.check.enabled=true
##新增两行
nacos.core.auth.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false

重新运行容器

docker run -d \
-e MODE=standalone \
-p 8848:8848 \
-v /opt/app/nacos/conf:/home/nacos/conf \
-v /opt/app/nacos/logs:/home/nacos/logs \
-v /opt/app/nacos/data:/home/nacos/data \
--name nacos \
--restart=always \
nacos/nacos-server

访问8848端口,登录(nacos/nacos)后记得修改密码。

安装RabbitMQ

rabbitmq版本:

挂载目录:/opt/app/rabbitmq

docker pull rabbitmq
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v /opt/app/rabbitmq:/var/lib/rabbitmq rabbitmq

执行此命令,开启web端界面

docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management

现在可以通过访问http://linuxip:15672,访问web界面,这里的用户名和密码默认都是guest
我们需要修改默认用户guest的密码

docker exec -it  82a6493c6c77 bash
# 查看所有用户
rabbitmqctl list_users
# 改guest用户的密码
rabbitmqctl change_password guest 'password'

安装elasticsearch

Elasticsearch 版本为8.6.0

因为需要部署kibana容器,因此需要让es和kibana容器互联。

docker network create es-net

安装:

docker pull elasticsearch:8.6.0

创建挂载点目录:

mkdir -p /opt/app/elasticsearch/data /opt/app/elasticsearch/config /opt/app/elasticsearch/plugins

部署单点es,创建es容器

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /opt/app/elasticsearch/data:/usr/share/elasticsearch/data \
-v /opt/app/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0

编写elasticsearch.yml

docker exec -it es /bin/bash
cd config
echo 'xpack.security.enabled: false' >> elasticsearch.yml
#查看一下是否已经添加成功
cat elasticsearch.yml

docker restart es

注意:文中echo ‘xpack.security.enabled: false’ >> elasticsearch.yml的指令,执行这条指令后,会在elasticsearch.yml下面增加xpack.security.enabled: false,而不是修改文件内的xpack.security.enabled的值;建议把容器内的elasticsearch.yml复制出来修改后再放入容器内。但是我没有安装编辑器所以只能这样。

访问ip:9200

安装kibana

kibana版本为8.6.0

docker pull kibana:8.6.0

创建挂载点目录:

mkdir -p /opt/app/kibana/config /opt/app/kibana/data

部署kibana,创建kibana容器

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0

-v /opt/app/kibana/config:/usr/share/kibana/config \

测试kibana是否安装成功:http://ip:5601

给kibana设置密码。进入容器config目录下找到kibana.yml

docker cp kibana:/usr/share/kibana/config  /opt/app/kibana

echo '' >> kibana.yml
echo 'elasticsearch.username: "elastic"' >> kibana.yml
echo 'elasticsearch.password: "password"' >> kibana.yml
# 添加以下内容
elasticsearch.username: "elastic"
elasticsearch.password: "密码"

安装IK分词器

链接安装
docker exec -it es /bin/bash

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.6.0/elasticsearch-analysis-ik-8.6.0.zip

注意:安装IK分词器的版本,必须和Elasticsearch的版本一致, 上文安装的是Elasticsearch 8.6.0的,所以接下来安装的IK分词器版本是8.6.0。如果需要安装其他版本的IK分词器,需要把版本号修改即可!

离线安装

将下载好的ik分词器的压缩包在本地解压,然后将文件夹拖到/opt/app/elasticsearch/plugins

# 重启容器
docker restart es
# 查看es日志
docker logs -f es

扩展词词典&停用词词典

打开IK分词器config目录,在IKAnalyzer.cfg.xml配置文件内容添加:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 *** 添加扩展词典-->
        <entry key="ext_dict">ext.dic</entry>
        <!--用户可以在这里配置自己的扩展停止词字典  *** 添加停用词词典-->
        <entry key="ext_stopwords">stopword.dic</entry>
</properties>

在config目录下新建一个 ext.dic,可以参考config目录下复制一个配置文件进行修改

奥利给

在 stopword.dic 添加停用词。

然后重启容器

docker restart es
# 查看 日志
docker logs -f elasticsearch

查看日志中是否已经加载了相关配置文件。或者打开可视化界面执行:

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "奥力给大叔"
}

观察返回结果"奥利给"没有被拆分即为成功!

安装Java8环境

更新软件包列表:

sudo apt-get update

安装openjdk-8-jdk:

sudo apt-get install openjdk-8-jdk

查看java版本,看看是否安装成功:

java -version

跑java项目:

java -jar demo-java-0.0.1-SNAPSHOT.jar

如果我们想在后台跑java项目,我们可以使用如下命令:

nohup java \
-Djava.rmi.server.hostname=ip \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Xms500m -Xmx500m \
-jar demo-java-0.0.1-SNAPSHOT.jar >myDemo.log 2>&1 &

注:-jar demo-java-0.0.1-SNAPSHOT.jar >myDemo.log 2>&1 & 是将日志输出到myDemo.log文件中(自动创建),前面几个命令是允许jmxremote远程访问java项目,我们可以在本地通过jconsole(打开命令控制台直接输入jconsole即可)连接到java项目(端口号是命令里写的port,此处是1099)。

输入jps,可以查看所有java项目运行的pid,我们可以通过kill -9 [项目的pid]来关闭项目

可以在linux系统中执行top来显示占用资源的进程排行。

通过top -p [进程pid] -H 来打印出进程中的线程占用资源的排行。文章来源地址https://www.toymoban.com/news/detail-789652.html

到了这里,关于Ubuntu配置基本环境以及docker安装基本中间件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux傻瓜式安装Java环境及中间件

    1.下载 2.追加 使用vim /etc/profile 编辑profile文件 输入 3.刷新测试 1.docker卸载 2.docker安装 注:-p 将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端 1.傻瓜式安装安装并配置 注:requirepass 123456 redis密码 1.安装 2.启动并配置密码 3.配置web页面插件 1.拉取 2.配置

    2024年02月05日
    浏览(45)
  • docker 离线安装中间件应用--nacos

    由于很多项目的部署环境是内网环境,中间件安装部署起来比较麻烦,故采用docker 进行离线部署。本文以docker离线安装部署nacos 为例,其他的中间件也是相同的部署步骤。 1、离线安装docker 和 docker-compose 具体请参考一下链接进行安装 docker docker-compose离线部署 2、下载nacos镜像

    2024年02月11日
    浏览(44)
  • Docker的安装及其常见中间件的部署

    基于centos7安装docker(Docker要求CentOS系统的内核版本高于3.10 uname -r 查看内核版本) 最好安装7.5以上版本支持k8s (1) 如果之前下载过需要运行命令卸载 (2)安装 Docker-CE 基本环境 (3)设置 docker repo 的 yum 位置 (4)安装 docker,以及 docker-cli (5)启动docker (6)停止docker (7)重启docker (8)查看

    2024年02月19日
    浏览(36)
  • 消息队列中间件 - Docker安装RabbitMQ、AMQP协议、和主要角色

    不管是微服务还是分布式的系统架构中,消息队列中间件都是不可缺少的一个重要环节,主流的消息队列中间件有RabbitMQ、RocketMQ等等,从这篇开始详细介绍以RabbitMQ为代表的消息队列中间件。 AMQP协议 AMQP协议是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与

    2024年02月03日
    浏览(61)
  • docker 安装 mysql、redis、rabbitmq、RocketMQ、Nacos 等中间件

    docker 用宝塔进行管理比较方便,如果想外部访问,一定要用宝塔在安全那里打开对应端口 使用 宝塔 直接安装即可 注意:mysql这样是没办法进行外部链接的还需要一步打开外部链接操作。 需要在进入 mysql 的bash之后进行操作:具体操作 通过简易版方式安装,主打的就是有问

    2024年01月21日
    浏览(57)
  • 【云原生进阶之PaaS中间件】第一章Redis-1.5.1安装配置

            在本节中,您将了解和学习Redis的环境安装设置。         要在Ubuntu上安装Redis,打开终端并键入以下命令 -         这将在Ubuntu机器上安装Redis。 1.2.1 安装步骤 1、首先使用 sudo brew install redis 命令一键安装Redis, 默认会安装在 /usr/local/bin 路径中。 2、cd 进

    2024年02月09日
    浏览(63)
  • 常见的中间件以及什么是中间件

    中间件顾名思义就是系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件在客户服务器的操作系统、网络和数

    2024年02月06日
    浏览(63)
  • Linux系统下消息中间件RocketMQ下载、安装、搭建、配置、控制台rocketmq-dashboard的安装保姆级教程 rocketmq ui

    这里给出我使用的 RocketMQ 版本(5.1.3)、RocketMQ-Dashboard 版本的百度网盘链接: 链接:https://pan.baidu.com/s/1HaKBBDGWZ0WKLGgVwIG9pw 提取码:1234 1、注意:有两种资源下载:Source表示源码、Binary是二进制包(我们下载这个):二进制包是已经编译完成后可以直接运行的,源码包是需要

    2024年02月12日
    浏览(62)
  • Ubuntu20.04安装pytorch(包括安装Anaconda和虚拟环境配置以及安装包spikingjelly)

    为了防止自己遗忘安装过程,同时能对需要的人提供帮助,故写该教程。 一、安装Anaconda 1.下载安装包 这里进入官网,进行下载 Anaconda | Anaconda Distribution Anaconda\\\'s open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. https://www.anaconda.com/pr

    2024年02月05日
    浏览(60)
  • 【中间件】ElasticSearch:ES的基本概念与基本使用

    Index索引、Type类型,类似于数据库中的数据库和表,我们说,ES的数据存储在某个索引的某个类型中(某个数据库的某个表中),Document文档(JSON格式),相当于是数据库中内容的存储方式 MySQL:数据库、表、数据 ElasticSearch:索引、类型、文档 ElasticSearch的检索功能基于其倒

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包