容器化时代:Docker搭建开发环境的最佳实践!

写在前面:docker安装自行百度;部分目录自行创建
一、docker 安装redis
  1. 下载redis默认配置文件
    wget https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf
    
  2. 配置文件redis.conf 修改 (改之前备份默认配置)
    注释 bind 127.0.0.1
    protected-mode yes 修改成 protected-mode no
    添加 requirepass yourpassword
    
  3. 执行命令
    docker run --restart=always --name redis -p 6379:6379 -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
    
二、docker 安装nginx
  1. 拉去最新版nginx镜像
    docker pull nginx
    
  2. 启动nginx 镜像
    docker run --name nginx -d -p 80:80 nginx
    
  3. 宿主机创建所用到的目录
    mkdir -p /usr/local/docker/nginx/html /usr/local/docker/nginx/logs /usr/local/docker/nginx/html/conf
    
  4. 将已启动容器的默认配置文件拷贝一份到宿主机
    docker cp 6355d1a52138:/etc/nginx/nginx.conf /usr/local/docker/nginx/conf/
    
  5. 将默认启动页拷贝一份到宿主机
    docker cp 6355d1a52138:/usr/share/nginx/html/index.html /usr/local/docker/nginx/html/
    
  6. 执行命令
    docker run --restart=always --name nginx -p 80:80 -d -v /usr/local/docker/nginx/html:/usr/share/nginx/html -v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/docker/nginx/logs:/var/log/nginx nginx
    
三、docker 安装mongo
  1. 拉去最新版mongo镜像

    docker pull mongo
    
  2. 添加配置文件mongod.conf

    # 数据库文件存储位置
    dbpath = /data/db
    # log文件存储位置
    logpath = /data/log/mongod.log
    # 使用追加的方式写日志
    logappend = true
    # 是否以守护进程方式运行
    # fork = true
    # 全部ip可以访问
    bind_ip = 0.0.0.0
    # 端口号
    port = 27017
    # 是否启用认证
    auth = true
    # 设置oplog的大小(MB)
    oplogSize=2048
    
  3. 启动镜像

      docker run --restart=always --name mongo -p 27017:27017 -d -v /usr/local/docker/mongo/conf:/data/configdb -v /usr/local/docker/mongo/data:/data/db -v /usr/local/docker/mongo/logs:/data/log/ --privileged mongo -f /data/configdb/mongod.conf
    
四、docker安装mysql
  1. 拉去镜像(5.7最新版)

    docker pull mysql:5.7
    
  2. 执行命令

    docker run --restart=always --name mysql -p 3306:3306 -d -v /usr/local/docker/mysql/conf:/etc/mysql/conf.d -v /usr/local/docker/mysql/data:/var/lib/mysql -v /usr/local/docker/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=1qaz@WSX mysql:5.7
    
  3. 修改时间(可选)

    1.宿主机在/etc目录下查询是否存在localtime文件或者软连接 如果不存在 /usr/share/zoneinfo/Asia/Shanghai拷贝一份 或者建立软连接都行
    2.mysql容器启动成功如果发现时间不正确在容器内执行:
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    或者
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    3.重启容器即可
    
五、docker安装nacos
  1. 拉取镜像

    docker pull nacos/nacos-server
    
  2. 增加配置文件custom.properties 选用mysql存储

    server.contextPath=/nacos
    server.servlet.contextPath=/nacos
    server.port=8848
    
    spring.datasource.platform=mysql
    
    db.num=1
    db.url.0=jdbc:mysql://192.168.1.10:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=password
    
    nacos.cmdb.dumpTaskInterval=3600
    nacos.cmdb.eventTaskInterval=10
    nacos.cmdb.labelTaskInterval=300
    nacos.cmdb.loadDataAtStart=false
    
    management.metrics.export.elastic.enabled=false
    
    management.metrics.export.influx.enabled=false
    
    
    server.tomcat.accesslog.enabled=true
    server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
    
    
    nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
    nacos.naming.distro.taskDispatchThreadCount=1
    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.naming.expireInstance=true
    
  3. 创建nacos数据库并执行sql脚本

    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_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_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_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_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   */
    /*   表名称 = 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   */
    /*   表名称 = 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   */
    /*   表名称 = 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');
    
  4. 执行docker命令

    docker run --restart=always --name nacos -p 8848:8848 -d -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /usr/local/docker/nacos/logs:/usr/docker/data/nacos/logs -v /usr/local/docker/nacos/init.d/custom.properties:/usr/docker/data/nacos/init.d/custom.properties nacos/nacos-server	
    
五、docker安装postgresql
  1. 拉去镜像

    docker pull postgresql:12.0
    
  2. 创建挂载目录

  3. 启动容器

    docker run --restart=always --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -v /usr/local/docker/postgresql/data:/var/lib/postgresql/data -d postgres:12.0
    
六、docker安装elk

https://blog.csdn.net/weixin_45103378/article/details/117032750

七、docker安装minio
docker run --privileged -d -it -p 9000:9000 -p 9111:9111 --name minio -e "MINIO_ROOT_USER=minioadmin" --privileged=true -e "MINIO_ROOT_PASSWORD=minio@123456" -v /usr/local/docker/minio/data:/data -v /usr/local/docker/minio/config:/root/.minio e31e0721a96b server /data --console-address ":9111" -address ":9000"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值