• docker相关


     

    一. vagrant 安装centos

    出现:Your VM has become “inaccessible.” Unfortunately, this is a critical error with VirtualBox that Vagrant can not cleanly recover from.

              Please open VirtualBox and clear out your inaccessible virtual machines or find a way to fix them.

    step1:命令行vagrant ,是否显示

     step2:删除.vagrant文件后重新vagrant up

    1.vagrant init centos/7

    2.开启 vagrant up

    注意:vagrant2.2.5 和 vitualbox6.1版本不兼容

    解决: https://blog.csdn.net/weixin_43838639/article/details/106210459

    3.连接虚拟机 vagrant ssh

    4.常用指令

    重启 vagrant reload

    关闭 vagrant halt

    二. centos安装docker

    设置root账户密码

    sudo passwd root

    输入密码

    输入密码

    安装docker

    yum install docker

    修改配置文件

     vi /etc/sysconfig/selinux

     将标红处修改为图中数据

    ocker安装完启动失败(code=exited, status=1/FAILURE)错误解决办法

     解决方法,修改docker文件,具体命令:vi  /etc/sysconfig/docker,在--selinux-enabled后面添加=false。如下图所示:

    启动docker

    systemctl enable docker //开机启动

    systemctl start docker //启动docker

    干净地卸载docker

    1.

    [root@localhost vagrant]# yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

    2. rm -rf /etc/systemd/system/docker.service.d

    3. rm -rf /var/lib/docker

    删除docker /var/lib/docker报Device or resource busy问题处理

    原因:

    在建立容器的时候做了目录的挂载,没有卸载,所以Device or resource busy

    解决方法:

    查找挂载的目录
    cat /proc/mounts | grep "docker" 卸载 umount /var/lib/docker/containers/ rm -rf /var/lib/docker/*

    删除docker目录

    4. rm -rf /var/run/docker

     

    安装yum

    https://blog.csdn.net/weixin_42390329/article/details/107733749

    本地上传文件到服务器

     备份镜像

    首先备份/etc/yum.repos.d/CentOS-Base.repo

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

     配置阿里云镜像加速

    容器镜像服务ACR->管理控制台->容器镜像服务->镜像中心->镜像加速器

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

    三.docker安装mysql等镜像

    docker -run报错参考https://www.linuxprobe.com/update-kernel-centos7.html

    安装或升级最新版本linux内核

    1.检查已安装版本
    # uname -sr
    2.在 CentOS 7升级内核
    # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
    仓库启用后,可以使用下面的命令列出可用的内核相关包:
    # yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
    安装最新稳定内核
    # yum --enablerepo=elrepo-kernel install kernel-ml
    3.设置 GRUB 默认的内核版本
    打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。
    重新创建内核配置
    # grub2-mkconfig -o /boot/grub2/grub.cfg
    重启并验证最新的内核已作为默认内核。

    将容器设置自启动

     docker update --restart=always 容器id

    1.安装mysql

    1.1.安装

    docker pull mysql:5.7

    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=密码 -d mysql:5.7

    1.2.登录

    docker exec -it mysql  /bin/bash

    mysql -u root -p 

    (mysql密码)

    use mysql;

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

    1.3.问题

    MySQL 插入 中文数据乱码解决:

    字符编码设置为UTF-8

    2.安装redis

    2.1.安装

    docker pull redis

    docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf  -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

    2.2.启动

     docker exec -it redis redis-cli

    2.3.卸载镜像

     3.配置nginx

    1)docker pull nginx

    mkdir nginx 

    mkdir nginx/conf (配置文件)

    mkdir nginx/logs (日志)

    mkdir nginx/www  (保存的网页)

    docker run -p 80:80 --name nginx-test  -d nginx(获取配置)

     docker cp d34c08b7c4c3:/etc/nginx/nginx.conf /mydta/nginx/conf (红色标记的是nginx-test的容器Id)

     2)删除test容器,重新配置一个容器,且挂载目录

    docker run -d -p 80:80 --name nginx -v /mydata/nginx/www:/usr/share/nginx/html -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mydata/nginx/logs:/var/log/nginx nginx

     参考链接:https://blog.csdn.net/weixin_40461281/article/details/92586378

    注意,上面链接没有生效,查看下面链接内容

    https://www.cnblogs.com/dotnet261010/p/12596185.html

    4.安装mongoDB

    4.1安装
    docker run -d --name mongo -v /usr/local/docker/mongodb/datadb:/data/db -p 27017:27017 --privileged=true mongo:5.0
    4.2Docker给MongoDB设置用户密码

      没有用户和密码,MongoDB的客户端NoSQL Manager for MongoDB是无法连接的

      设置用户和密码如下

    #admin进入
    docker exec -it 容器Id mongo admin
    #创建用户和密码
    db.createUser({ user: '账户名', pwd: '密码', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); 
    #验证一下对不对
    db.auth("账户名","密码");
    #退出
    exit

     5.安装nacos

    https://www.cnblogs.com/ameken/articles/14752315.html

     5.1拉取镜像

    docker pull nacos/nacos-server

     5.2挂载目录

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

    5.3mysql新建nacos的数据库,并执行脚本

     5.4修改配置文件custom.properties

    docker exec -it nacos /bin/bash
    
    cd conf/
    
    vim application.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_devtest_prod?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

    5.5启动容器

    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

     四. 人人开源

    vue

    1.配置环境

    a. 安装node.js

    官方下载node.js,node -v检查

    配置淘宝镜像:npm config set registry https://registry.npm.taobao.org

    a.vscode  npm install

     npm run dev

    generater

    编译错误换端口

    四.分布式组件-springCloud

    1.配置注册中心

    https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md

    2.nacos添加配置

    https://blog.csdn.net/LastYHM/article/details/106440107?utm_medium=distribute.wap_relevant.none-task-blog-title-2

    注意

     利用命名空间做环境隔离

     配置分组(区分环境)配置集 配置ID 

    Spring Cloud GateWay

    出现报错expected <block end>, but found BlockMappingStart解决方法

    解决:routes下的冒号两边需要有空格

    注意:

    nacos配置持久化

    1.nacos镜像下载好后,创建nacos数据库

     新建数据库,运行上面的sql文件。

    2.修改配置文件

    docker exec-it nacos /bin/bash
    cd conf
    /

    vim application.properties

    如图所示,几个地方改成自己的配置,如果没有从库的话可以把db.url.1 注释掉。

    db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=user
    db.password=pass

     注意黄线部分 db.url.0后参数加上useSSL=true&serverTimezone=GMT&
    保存 :wq
    3.启动nacos

    获取docker中的mysql容器IP(每个容器有自己的IP),记录下来
    docker inspect my_mysql | grep IPAddress

    启动nacos容器

     docker run --env MODE=standalone --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=172.17.0.4 --env MYSQL_SERVICE_PORT=3307 --env MYSQL_SERVICE_DB_NAME=nacos-config --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=root --env NACOS_DEBUG=n --name nacos -d -p 8848:8848 nacos/nacos-server

    中级

    1. sudo docker pull elasticsearch:7.4.2   //存储和检索数据

        sudo mkdir -p /mydata/elasticsearch/config

        sudo mkdir -p /mydata/elasticsearch/data

     echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

     docker run --name elasticsearch -p 9200:9200 -p 9300:9300 
      -e "discovery.type=single-node"
      -e ES_JAVA_OPTS="-Xms64m -Xms128m"
      -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data
      -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
       -d elasticsearch:7.4.2
     
    chmod -R 777 /mydata/elasticsearch/
    使用虚拟机IP访问!!!不是本地IP和127.0.0.1
    http://192.168.56.10:9200/

     2.sudo docker pull  kibana:7.4.2      //可视化检索数据

    docker run --name kibana -e ELASTICSEARCH_URL=http://10.0.0.11:9200 -p 5601:5601 -d kibana:7.4.2

    问题:192.168.56.10:5601无法访问

    查看log :docker logs kibana

    有这个错误:kibana Unable to revive connection: http://elasticsearch:9200

    解决:进入kibana容器  docker  exec -it kibana /bin/bash

       修改配置文件 config/kibana.yml,主机IP修改为本机IP

       

    遇到问题:

    或者dos命令杀进程如果出现  错误: 无法终止 PID (属于PID4321的子进程)为 1234 的进程。

    以管理员身份运行cmd;

    netstat -ano|findstr "10000"

    taskkill /pid 5596 /f

    10000是端口号

    5596是pid

    配置阿里云OSS服务

    问题:解决Cannot resolve com.alibaba.cloud:aliyun-oss-spring-boot-starter:unknown 文件上传报错aliCloudEdasSdk解决

    链接:https://blog.csdn.net/weixin_37056888/article/details/108953093?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-3&spm=1001.2101.3001.4242

    OSS获得阿里云服务端签名——服务端签名后直传

    https://www.liangzl.com/get-article-detail-212185.html

     五.linux部署jar包项目

    1.安装jdk

    1.1 本地下载jdk-8u211-linux-x64.tar.gz

    1.2 使用scp指令拷贝文件到服务器

    scp ..jar root@xx:服务器上文件路径,解压

    1.3  添加java环境变量

    vim /etc/profile

    export JAVA_HOME=/usr/local/jdk1.8.0_211
    export PATH=$JAVA_HOME/bin:$PATH

    1.4 使配置文件生效

    source /etc/profile

    1.5 查看是否安装成功

    java -version

    2. 部署

    2.1在/usr/local 新建app文件夹,新建jasmineWeb文件夹,将jar包复制到改文件夹下。

    2.2部署

    首先在linux系统下前台运行jar包的和window上一样的
    java -jar demo-0.0.1-SNAPSHOT.jar
    后台运行进程, nohup java
    -jar demo-0.0.1-SNAPSHOT.jar
    重定向输出日志的文件名和格式,
    这样关闭服务器连接窗口,项目依然还会后台运行
     nohup java -jar demo-0.0.1-SNAPSHOT.jar >msg.log 2>&1 &
    查看日志
    tail -f nohup.out
    查看当前后台运行jar包的进程id号 ps -aux | grep java
    关闭进程 kill -9 进程id

    我的指令
    nohup java -Xms256M -Xmx256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -jar jasmine-admin.jar --spring.profiles.acti
    ve=dev >msg.log 2>&1 &

    3.docker部署jar包

    https://blog.csdn.net/weixin_42054155/article/details/90815393

    4.部署服务后无法访问

    查看防火墙状态

    firewall-cmd --state

    停止firewall

    systemctl stop firewalld.service

    禁止firewall开机启动

    systemctl disable firewalld.service 

    Centos7开放及查看端口
    https://www.cnblogs.com/heqiuyong/p/10460150.htm

    - 查看开放了哪些端口

    firewall-cmd --list-all

    – 开放指定端口

    firewall-cmd --zone=public --add-port=1935/tcp --permanent

    – 关闭指定端口

    firewall-cmd --zone=public --remove-port=5672/tcp --permanent

    – 重启防火墙

    firewall-cmd --reloadl
     
  • 相关阅读:
    IDEA执行spark程序报集群资源错误
    CDH SparkOnYarn执行中executor内存限制问题
    hadoop datanode只能启动2个
    kafka启动报错Configured broker.id 1 doesn't match stored broker.id 2 in meta.properties
    spark streaming kafka Couldn't find leader
    spark出现task不能序列化错误的解决方法 org.apache.spark.SparkException: Task not serializable
    Spark:java.net.BindException: Address already in use: Service 'SparkUI' failed after 16 retries!
    多instance启动spark部分worker起不来 java.lang.OutOfMemoryError
    spark配置详解
    hdfs目录存储最大文件数异常MaxDirectoryItemsExceededException
  • 原文地址:https://www.cnblogs.com/dormant-valcano/p/14144365.html
Copyright © 2020-2023  润新知