返回顶部
首页 > 资讯 > 数据库 >【Zero to One系列】在WSL linux系统上,使用docker运行Mysql与Nacos,以及如何启动与停止WSL
  • 412
分享到

【Zero to One系列】在WSL linux系统上,使用docker运行Mysql与Nacos,以及如何启动与停止WSL

linuxdockerjavadocker运行mysqldocker运行nacos 2023-10-06 13:10:44 412人浏览 安东尼
摘要

前期回顾: 【Zero to One系列】window系统安装Linux、docker 1、下载Docker-compose 1.下载:  curl -SL https://GitHub.com/docker/compose/releas

前期回顾:

【Zero to One系列】window系统安装Linux、docker


1、下载Docker-compose

1.下载: 

curl -SL https://GitHub.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

2.授予权限:
sudo chmod +x /usr/local/bin/docker-compose

3.测试安装结果
docker-compose --version


2、下载Mysql镜像并运行

1、下载镜像

docker pull mysql:8.0

2、查看下载的镜像

docker images

3、使用docker运行

使用如下命令:

docker run  --name=test_mysql -p 3307:3306 -e MYSQL_ROOT_PASSWord=123456 mysql:8.0

一般正常运行后,会出现一串字符串。(我这个端口3307,是因为我虚拟机外的本机有一个本地mysql运行,端口已经被占用了)

docker ps 看下运行的容器

如此,mysql就启动成功啦。我们可以通过如下命令,进入容器,操作mysql:

docker exec -it mysql容器id bash

然后直接输入mysql -uroot -p123456,进入数据库就可以啦~~。。也可以通过数据库可视化客户端Dbeaver或是Navicat之类的连接。。

4、使用docker-compose运行mysql

其实这里,我是尝试过使用docker-compose来启动mysql的,compose脚本如下:

但是启动过程中,出现多种错误,如下:

 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.

 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.


 [ERROR] [MY-010295] [Server] Could not set file permission for private_key.pem

但都解决啦,compose脚本如下:

version: '3.1'services:  db:    image: mysql:8.0    container_name: mysql8.0    environment:      MYSQL_ROOT_PASSWORD: '123456'    command:      --default-authentication-plugin=mysql_native_password      --character-set-server=utf8mb4      --collation-server=utf8mb4_general_ci      --explicit_defaults_for_timestamp=true    ports:      - 3307:3306    volumes:      - /mnt/d/Java/ZeroToOne/mysql/conf/my.cnf:/etc/mysql/my.cnf      - /mnt/d/Java/ZeroToOne/mysql/data:/var/lib/mysql      - /mnt/d/Java/ZeroToOne/mysql/log:/var/log/mysql

使用命令看下运行情况,docker ps

至此docker启动mysql就完成啦~~


 3、下载Nacos镜像并运行

拉取镜像

进入docker hub:Docker ,选择一个版本,我选的v2.1

docker pull nacos/nacos-server:v2.1.0

下载完镜像之后,需要建几个nacos初始化的文件夹,使用mkdir命令创建,我的如下:

在conf目录下,新建一个application.properties文件,写入如下内容:

server.servlet.contextPath=/nacosserver.port=8848spring.datasource.platfORM=mysql# 数据库数量db.num=1db.url.0=jdbc:mysql://ip:3307/nacos_config?characterEncoding=utf8&connectTimeout=1000&SocketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=123456

另外conf下还要写入一个nacos-logback.xml文件,不然启动会报错,报找不到这个nacos-logback.xml文件,文件内容如下:

    logback                                      ERROR                            %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n                                     ${log.path}                    ${log.path}.%d{yyyy-MM-dd}.zip                             %date %level [%thread] %logger{36} [%file : %line] %msg%n                                                       

然后去mysql,创建初始化nacos的数据库和表格,脚本如下:

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(128) 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(128) 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(20) 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');

然后通过compose脚本,内容如下:

version: "3"services:  nacos:    image: nacos/nacos-server:v2.1.0    container_name: nacos    environment:      # 支持主机名可以使用hostname,否则使用ip,默认ip      - PREFER_HOST_MODE=172.27.192.92      # 单机模式      - MODE=standalone      # 数据源平台 支持mysql或不保存empty      - SPRING_DATASOURCE_PLATFORM=mysql    volumes:      - ./logs:/home/nacos/logs      - ./conf:/home/nacos/conf    ports:      - 8848:8848     restart: always

使用命令启动nacos:

docker-compose up -d

-d是指后台运行,如果第一次运行可以不用,这样能看到启动日志报错情况。当然,用了也可以使用如下命令查看日志:

docker-compose logs -f

出现如下信息,就启动成功啦:

 通过ip:8848/nacos,就可以登录进去啦:

 至此,使用docker启动nacos和mysql就都完成啦。。。可以开始下一步,服务注册啦~~~


4、停止WSL

        以下命令需要在poweshell里执行,在linux执行的是关闭mysql和nacos容器这些。不然,wsl还会以内核形式在window上继续运行。停止wsl之前,建议最好是把linux内的所有docker容器都停止后,退出linux之后,再执行停止命令。否则,可能导致关闭不了,因为docker可能会在一直重启状态。。

# 查看当前所有分发虚拟机的状态
wsl -l --all -v

wsl开启指定终端
wsl -d <分发>   例如:wsl -d ubuntu

wsl关闭指定终端
# 关闭所有版本(分发)的虚拟机
wsl --shutdown

# 关闭指定版本(分发)的虚拟机
wsl -t <分发>

效果如下:

来源地址:https://blog.csdn.net/yy339452689/article/details/129689537

您可能感兴趣的文档:

--结束END--

本文标题: 【Zero to One系列】在WSL linux系统上,使用docker运行Mysql与Nacos,以及如何启动与停止WSL

本文链接: https://www.lsjlt.com/news/424100.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作