当前位置: 首页 > article >正文

05、Docker学习,常用安装:Mysql、Redis、Nginx、Nacos

Docker学习,常用安装:Mysql、Redis、Nginx、Nacos

一、Docker安装Mysql

1、docker search mysql  							##查找mysql版本都有哪些
2、docker pull mysql:5.6 						##下载5.6版本的mysql镜像
3、docker run -p 13306:3306 --name mysql       	##运行镜像生成容器
   -v /opt/software/myfile/mysql/conf:/etc/mysql/conf.d
   -v /opt/software/myfile/mysql/logs:/logs
   -v /opt/software/myfile/mysql/data:/var/lib/mysql			
   -e MYSQL_ROOT_PASSWORD=admin123				##密码
   -d mysql:5.6									##后台静默运行
=======================================================================
4、docker ps   								    ##查看
5、docker exec -it mysql /bin/bash				##进入容器
6、mysql -uroot -p							    ##
7、docker exec mysql sh -c ' exec mysqldump --all-databases -uroot -p"admin123" ' > /opt/myfile/mysql/all-database.sql			##备份数据库数据

docker pull mysql:8.0
docker run -p 13307:3306 --name mysql       	##运行镜像生成容器
   -v /opt/software/myfile/mysql8/conf:/etc/mysql/conf.d
   -v /opt/software/myfile/mysql8/logs:/logs
   -v /opt/software/myfile/mysql8:/var/lib/mysql			
   -e MYSQL_ROOT_PASSWORD=admin123				##密码
   -d mysql:8									##后台静默运行


docker run -p 13307:3306 --name mysql8 -v /opt/software/myfile/mysql8/conf:/etc/mysql/conf.d -v /opt/software/myfile/mysql8/logs:/logs  -v /opt/software/myfile/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin123 -d mysql:8.0

二、Docker安装Redis

1、docker pull redis:3.2						##下载Redis3.2版本的镜像
2、docker run -p 16379:6379 --name redis -v 
         /opt/software/myfile/redis/conf/redis.conf:/etc/redis/redis.conf -v 
         /opt/software/myfile/redis/data:/data -d redis redis-server 
         /etc/redis/redis.conf 
         --appendonly yes
=======================================================================
3、docker ps
4、docker exec -it redis redis-cli		##运行redis-cli
5、操作redis
6、在/opt/myfile/redis/data查看是否有持久化文件生成

三、Docker安装Nginx

1、搜索nginx
docker search nginx
2、拉去nginx镜像
docker pull nginx
3、启动一个nginx,目的是为了把它里面的配置文件cp出来,方便一会挂载
docker run -p 80:80 --name nginx -d nginx
4、复制容器中的配置文件
docker container cp nginx:/etc/nginx . 
5、将复制出来的文件改变名称,由nginx变成conf
mv nginx/ conf
6、停止容器
docker stop nginx
7、删除容器
docker rm nginx
8、启动新的nginx容器,并挂载刚才复制出来的conf配置文件
docker run -p 80:80 --name nginx \
-v /opt/software/myfile/nginx/html:/usr/share/nginx/html \
-v /opt/software/myfile/nginx/logs:/var/log/nginx \
-v /opt/software/myfile/nginx/conf:/etc/nginx \
-d nginx
9、测试
localhost:80
发现没有正常显示,是因为挂载的html中的index.html文件没有。在html中创建一个index.html并写入内容
10、测试
localhost:80
## 关于nginx 开发多个配置文件 多个端口的问题

1、首先nginx.conf 要 开启多配制 :include /etc/nginx/conf.d/*.conf;

2、在conf.d文件夹下创建你想要的配置和想要的端口



3、创建了多配制 多端口后发现还是访问不到,有可能遇到的原因是docker 没有映射多出来的端口,
如下 除了默认的80端口,再新映射一个81(你想要的端口)即可



docker run -p 80:80 -p 81:81 --name nginx \
-v /opt/software/myfile/nginx/html:/usr/share/nginx/html \
-v /opt/software/myfile/minio/data:/usr/share/nginx/html/data \
-v /opt/software/myfile/nginx/logs:/var/log/nginx \
-v /opt/software/myfile/nginx/conf:/etc/nginx \
-v /opt/software/myfile/nginx/conf/conf.d:/etc/nginx/conf.d \
-d nginx

四、Docker安装Nacos

##docker安装nacos(单机)、使用默认的mysql数据库

1、拉取镜像
docker pull nacos/nacos-server
2、创建本地映射文件
mkdir -p /opt/software/myfile/naocs/init.d /opt/software/myfile/nacos/logs
touch /opt/software/myfile/nacos/init.d/custom.properties

在custom.properties中写入:
management.endpoints.web.exposure.include=*

3、创建数据库 nacos_config

4、nacos初始化sql,需要先创建nacos数据库后,然后执行下面的Sql

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


5、创建容器
docker run -d -p 7848:7848 -p 8848:8848 -p 9555:9555 -p 9848:9848 -p 9849:9849 \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.73.107 \
-e MYSQL_SERVICE_PORT=13306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=admin123 \
-e MYSQL_DATABASE_NUM=1 \
-v /opt/software/myfile/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-v /opt/software/myfile/nacos/logs:/home/nacos/logs \
--restart always --name nacos nacos/nacos-server


## 其中端口 7848、8848、9848、9849是必须要开放的端口,8848是web页面端口,7848是集群数据同步接口,9848、9849是nacos 2.0.0以上的版本必须开发的端口。

6、启动容器
docker start nacos







十、Docker本地镜像推送到阿里云

1、生成镜像
   1)、DockerFile  ##第一种方式:生成本地自己的镜像
   2)、docker commit -a lee -m "new mycentos 1.4 from 1.3"  c167ee237b87 mycentos:1.4  		##第二种方式:从容器创建一个新的镜像
	(-a 提交镜像的作者 -m 提交时的文字说明)(docker commit [options] 容器ID [REPOSITORY[:TAG]])

2、将本地镜像推送到阿里云
	1)、阿里云开发者平台->容器镜像服务->镜像列表->镜像仓库列表
	2)、创建镜像仓库->(命名空间、仓库名称、摘要、描述信息等)
	3)、将镜像推送到Registry
docker login --username=xxxxxxx registry.cn-beijing.aliyuncs.com
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/xxxxxx/docker_warehouse:[镜像版本号]
docker push registry.cn-beijing.aliyuncs.com/xxxxx/docker_warehouse:[镜像版本号]

3、从Registry中拉取镜像
docker pull registry.cn-beijing.aliyuncs.com/xxxxx/docker_warehouse:[镜像版本号]


http://www.kler.cn/a/472822.html

相关文章:

  • Linux(上):基本知识篇
  • 【算法】算法大纲
  • SpringBoot | 使用Apache POI库读取Excel文件介绍
  • 操作手册:集成钉钉审批实例消息监听配置
  • 基于RedHat9部署WordPress+WooCommerce架设购物网站
  • xml-dota-yolo数据集格式转换
  • springboot点餐平台网站
  • 小程序学习08—— 系统参数获取和navBar组件样式动态设置
  • 58. Three.js案例-创建一个带有红蓝配置的半球光源的场景
  • BMS应用软件开发 — 3 电池系统的组成
  • 生成透明图的方式?
  • 【计算机网络】课程 实验四 配置快速生成树协议(RSTP)
  • 腾讯云AI代码助手编程挑战赛-待办事项
  • 第5章——与HTTP协作的Web服务器
  • 『 Linux 』高级IO (四) - Epoll 的工作模式
  • 机器学习:逻辑回归
  • sqlzoo答案1-SELECT names
  • 牛客网刷题 ——C语言初阶(6指针)——BC105 矩阵相等判定
  • 解决vmware虚拟机和宿主机之间不能复制粘贴
  • GDPU Android移动应用 重点习题集
  • idea报错Malformed \uxxxx encoding.报错解决
  • 【Python】构建智能语音助手:使用Python实现语音识别与合成的全面指南
  • (自己备份用)一些安装pytorch包的经验
  • 攻防世界 bug
  • SQL Server-Query Store
  • 用Python实现简单的任务自动化