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

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

一、Docker安装Mysql

xml 复制代码
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			##备份数据库数据
xml 复制代码
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

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

xml 复制代码
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
xml 复制代码
## 关于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

xml 复制代码
##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本地镜像推送到阿里云

xml 复制代码
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:[镜像版本号]
相关推荐
武昌库里写JAVA2 分钟前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
?ccc?25 分钟前
MySQL主从复制与读写分离
数据库·mysql
一弓虽1 小时前
git 学习
git·学习
行止62 小时前
MySQL主从复制与读写分离
linux·数据库·mysql
ChicagoTypewriter2 小时前
MySQL用户和授权
mysql
木头左2 小时前
Docker容器化技术中的联合文件系统原理探究
docker·容器·eureka
Moonnnn.3 小时前
【单片机期末】串行口循环缓冲区发送
笔记·单片机·嵌入式硬件·学习
itachi-uchiha3 小时前
Docker部署Hive大数据组件
大数据·hive·docker
圈圈编码3 小时前
悲观锁和乐观锁
java·开发语言·sql·mysql
viperrrrrrrrrr74 小时前
大数据学习(131)-Hive数据分析函数总结
大数据·hive·学习