• 使用Docker搭建Linux开发环境


    主要命令参考:https://docs.docker.com/engine/install/centos/

    一、Centos安装Docker

    1、卸载系统之前的 docker

     sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    

    2、安装必须的依赖

    sudo yum install -y yum-utils
    

    3、设置 docker repo 的 yum 位置

    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    

    4、安装 docker,以及 docker-cli

    sudo yum install docker-ce docker-ce-cli containerd.io
    

    5、启动 docker

    sudo systemctl start docker
    

    6、设置 docker 开机自启

    sudo systemctl enable docker
    

    7、测试 docker 常用命令,注意切换到 root 用户下 https://docs.docker.com/engine/reference/commandline/docker/

    8、Docker配置阿里云镜像加速器
    https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
    在这里插入图片描述
    执行以下命令即可:

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://2x0cdkie.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    二、Docker 安装MySQL

    1、下载镜像文件

    docker pull mysql:5.7
    

    2、创建实例并启动

    docker run -p 3306:3306 --name mysql \ 
    	-v /mydata/mysql/log:/var/log/mysql \ 
    	-v /mydata/mysql/data:/var/lib/mysql \ 
    	-v /mydata/mysql/conf:/etc/mysql \ 
    	-e MYSQL_ROOT_PASSWORD=root \ 
    	-d mysql:5.7 
    

    参数说明:
      -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
      -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
      -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
      -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
      -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码

    3、MySQL 配置
    在 /mydata/mysql/conf 目录下创建配置文件 my.cnf

    vi /mydata/mysql/conf/my.cnf
    

    配置内容如下:

    [client] 
    default-character-set=utf8 
    
    [mysql] default-character-set=utf8 
    
    [mysqld] 
    init_connect='SET collation_connection = utf8_unicode_ci' 
    init_connect='SET NAMES utf8' 
    character-set-server=utf8 
    collation-server=utf8_unicode_ci 
    skip-character-set-client-handshake 
    skip-name-resolve
    

    注意:解决 MySQL 连接慢的问题 在配置文件中加入如下,并重启 mysql

    [mysqld] 
    skip-name-resolve 
    

    解释: skip-name-resolve:跳过域名解析

    设置启动docker 自动启动容器:

    docker update mysql --restart=always
    

    4、通过容器的 mysql 命令行工具连接

    docker exec -it mysql mysql -uroot -proot
    

    5、设置 root 远程访问

    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; 
    flush privileges;
    

    如果不设置开启root账户远程访问,则使用其他电脑连接该容器里的MySQL会出现以下错误:

    1045-Access denied for user ‘root’@‘124.221.145.291’(using password:YES)

    若要完全解决,可在安装mysql的机器上把mysql库下的user表里的root用户开启远程登陆—
    (把localhost这个值替换成%)

    mysql服务搭建后,默认的root角色是不能进行远程访问连接的,建议在数据库搭建时,创建一远程连接的角色。
    6、进入容器文件系统

    docker exec -it mysql /bin/bash
    

    三、Docker 安装Redis

    1、下载镜像文件

    docker pull redis
    

    2、创建实例并启动

    mkdir -p /mydata/redis/conf 
    touch /mydata/redis/conf/redis.conf 
    
    docker run -p 6379:6379 --name redis 
    	-v /mydata/redis/data:/data \ 
    	-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ 
    	-d redis redis-server /etc/redis/redis.conf
    

    3、设置redis 缓存数据持久化
    在redis.conf 中配置

    appendonly yes
    

    4、使用 redis 镜像执行 redis-cli 命令连接

    docker exec -it redis redis-cli
    

    测试是否安装成功

    四、Docker 安装Nacos

    1、拉取镜像

    docker pull nacos/nacos-server:1.3.0  # :后为版本号,可以不加,默认拉取最新版本Nacos
    

    2、mysql新建nacos的数据库,并执行脚本
    默认需要创建的数据库名为 nacos_config
    (也可以使用默认自带的数据库,但是为了方便查看数据,我们这里选择自己新建数据库)
    使用默认数据库安装Nacos 可参考:

    https://www.cnblogs.com/niunafei/p/12803965.html

    在这里插入图片描述
    相关表结构初始化 sql 见官网

    https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

    3、创建文件夹及配置文件
    这里是为了后来将Ducker容器内启动的Nacos配置文件挂载出来,方便操作。

    mkdir -p /mydata/nacos/logs/                      #新建logs目录
    mkdir -p /mydata/nacos/init.d/          
    vim /mydata/nacos/init.d/custom.properties        #修改配置文件
    

    配置文件内容为:

    server.contextPath=/nacos
    server.servlet.contextPath=/nacos
    server.port=8848
    
    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true #上一步创建的数据库连接地址
    db.user=user	#数据库用户名
    db.password=pass	#数据库密码
    
    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
    

    4、启动容器

    docker  run \
    --name nacos -d \
    -p 8848:8848 \
    --privileged=true \
    --restart=always \
    -e JVM_XMS=256m \
    -e JVM_XMX=256m \
    -e MODE=standalone \
    -e PREFER_HOST_MODE=hostname \
    -v /mydata/nacos/logs:/home/nacos/logs \
    -v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
    nacos/nacos-server:1.3.0	#如果第一步拉取nacos时加了版本号,这里也需要加版本号
    

    5、查看是否启动成功
    ① 去第3步挂载的目录下面查看日志
    ② 直接访问

    http://ip地址:8848/nacos/

    用户名和密码均为 nacos 查看是否登录成功。

  • 相关阅读:
    poj1019——log10求位数
    poj2084——卡特兰数
    hdoj1023——卡特兰数
    poj1496——组合数学
    poj1850——组合数学
    bestcoder#29 1002 矩阵连乘快速幂解fib数列
    bestcoder#28 1002 dfs
    poj1458——dp,lcs
    hduoj1106
    codeforces#296div2_b 字符串,图
  • 原文地址:https://www.cnblogs.com/firecode7/p/16120348.html
Copyright © 2020-2023  润新知