精华内容
下载资源
问答
  • 昨天发现开发环境的3台kafka无法消费,所以今日kafka的容器执行如下语句 bash-4.4# ./kafka-topics.sh --describe --zookeeper 192.168.0.170:2181 --topic nova2_plantree_topicTopic:nova2_plantree_topic ...

    昨天发现开发环境的3台kafka无法消费,所以今日kafka的容器执行如下语句

    bash-4.4# ./kafka-topics.sh --describe --zookeeper 192.168.0.170:2181 --topic nova2_plantree_topic
    Topic:nova2_plantree_topic PartitionCount:3 ReplicationFactor:3 Configs:
    Topic: nova2_plantree_topic Partition: 0 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0
    Topic: nova2_plantree_topic Partition: 1 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
    Topic: nova2_plantree_topic Partition: 2 Leader: 1 Replicas: 1,0,2 Isr: 1,0,2

     

    发现topic是好的

     

    然后执行

    bash-4.4# ./kafka-consumer-groups.sh --bootstrap-server 192.168.0.170:9092 --list

     

    发现消费者group是空的,或者直接报错

    然后查看java的消费者日志,报错很多   

    2019-03-13 09:42:39.641 org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1 WARN org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.handleCompletedMetadataResponse(NetworkClient.java:846) - Error while fetching metadata with correlation id 879 : {nova2_plantree_topic=LEADER_NOT_AVAILABLE}

     

    后面网上查了一下,说可能是hostname被修改了而没有修改kafka的配置的原因,和同事沟通了一下发现确实这几天修改了hostname

    所以我在docker 里对kafka的/opt/kafka_2.12-2.1.0/config/server.properties 加了如下的配置

    advertised.host.name=win-jrh378d7scu.auth.hpicorp.net

    然后重启所有的三台docker上的zookeeper和kafka

    然后再看java消费者的日志,没有报错LEADER_NOT_AVAILABLE了,但是239的kafka好像还是有问题,后面看了239的kafka的docker日志,发现连不上183和3的zookeeper

    检查了一下3台的zookeeper都是正常的监听了2181端口,所以肯定是docker机器开机的时候没有关闭防火墙,后来把防火墙关闭了没有重启docker导致有的zookeeper的端口访问不了

     

    所以我把三台的docker都systemctl stop后再start

    再把三台zookeeper和kafka都启动就好了

     

    在kafka中执行也可以查询到消费group了

    bash-4.4# ./kafka-consumer-groups.sh --bootstrap-server 15.31.213.183:9094 --list
    plantree_group

     

    转载于:https://www.cnblogs.com/xiaohanlin/p/10530163.html

    展开全文
  • 关于docker容器修改/etc/hosts文件

    万次阅读 2018-07-20 08:57:36
    容器启动起来修改成功后,下次容器重启会丢失,因此,我们需要将ip hostname 在做镜像的时候写进去。 CMD命令,启动容器的入口。可以在这个shell 脚本中加入: echo "ip hostname" >> /...

    第一部分:root用户

    对于root用户,这个修改起来还是比较方便呢。 容器启动起来修改成功后,下次容器重启会丢失,因此,我们需要将ip hostname 在做镜像的时候写进去。

    CMD命令,启动容器的入口。可以在这个shell 脚本中加入:

    echo "ip hostname" >> /etc/hosts 文件中。

    对于写入的对应关系比较多的情况下。可以将其写入一个文件中,然后使用:

    cat hosts.txt >> /etc/hosts

    第二部分:普通用户(非root用户)

    普通用户对/etc/hosts 没有操作权限,因此在操作之前需要现有操作的权限,可以在容器中装sudo,具体如下:

    yum install -y sudo

    sudo.sh 文件内容

    #!/bin/bash

    chmod 777 /etc/sudoers;

    echo "Cmnd_Alias HOSTS = /bin/chmod 777 /etc/hosts" >> /etc/sudoers;

    echo "Cmnd_Alias HOST = /bin/chmod 644 /etc/hosts" >> /etc/sudoers;

    echo "yanfa ALL=(root)      NOPASSWD:HOSTS,HOST" >> /etc/sudoers;

    chmod 440 /etc/sudoers;

    在CMD启动脚本中,写入:

    sudo /bin/chmod 777 /etc/hosts;

    cat /app/setup/hosts >> /etc/hosts;

    sudo /bin/chmod 644 /etc/hosts;

    注: /app/setup/hosts  是ip hostname 对应关系的文件

    通过以上内容可以实现容器中/etc/hosts的实现。

    展开全文
  • 配置Docker容器环境

    2019-12-16 17:50:59
    1. 修改ip和DNS 为防止IP冲突,无法联网等问题,需预先设置好主机名、IP、DNS配置 1. 修改cloud.cfg防止重启后主机名还原 vi /etc/cloud/cloud.cfg ... preserve_hostname: true 2. 修改主机名 # 修改主...

    1. 修改ip和DNS

    为防止IP冲突,无法联网等问题,需预先设置好主机名、IP、DNS配置

        1. 修改cloud.cfg防止重启后主机名还原
            vi /etc/cloud/cloud.cfg
            # 该配置默认为false,修改为true即可
            preserve_hostname: true
        2. 修改主机名
            # 修改主机名
            hostnamectl set-hostname deployment
            # 配置hosts
            cat>>/etc/hosts<<EOF
            192.168.171.136 deploment
            EOF
        3. 修改IP
            vi /etc/netplan/50-cloud-init.yaml
            network:
              ethernets:
                addresses: [192.168.171.136/24]
                gateway4: 192.168.171.2
                nameservers:
                  addresses: [192.168.171.2]
              version: 2
            使用netplan apply命令让配置生效
        4. 修改DNS
            # 取消DNS行注释,并增加DNS配置:114.114.114.114,修改后重启计算机,如:
            vi /etc/systemd/resolved.conf
            reboot
    

    2. 安装docker

    1. 卸载旧版本
        apt-get remove docker docker-engine docker.io containerd runc
    2. 更新数据源
        apt-get update
    3. 安装
        apt install docker.io
    4. 配置阿里云加速器
        vi /etc/docker/daemon.json
        {
          "registry-mirrors": ["https://6mrn5rv4.mirror.aliyuncs.com"]
        }
        #重启docker
        systemctl daemon-reload
        systemctl restart docker
        # 查看是否配置成功
        docker info
    

    3. 安装docker compose

    1. 拷贝或者下载文件至/usr/local/bin/目录下
        #下载
        curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    2. 给docker-compose文件加执行权限
        chmod +x docker-compose
    3. 验证
        docker-compose version
    

    4. 安装JDK

        - 准备安装文件
            1. 解压文件: tar -zxvf jdk-8u152-linux-x64.tar.gz
            2. 创建目录:mkdir -p /usr/local/java
            3. 移动安装包:mv jdk1.8.0_152/ /usr/local/java/
            4. 设置所有者: chown -R root:root /usr/local/java/
        - 配置系统环境变量
            vi /etc/environment
            PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/u
            sr/local/games"
            export JAVA_HOME=/usr/local/java/jdk1.8.0_152
            export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
            export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
        - 配置用户环境变量
            vi /etc/profile
            fi
            export JAVA_HOME=/usr/local/java/jdk1.8.0_152
            export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
            export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
            export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
            if [ -d /etc/profile.d ]; then
        - 使用用户环境变量生效
            source /etc/profile
        - 验证
            java -version
    

    5. 安装tomcat

    1. 解压文件至/usr/local/tomcat下
    2. 启动
        /usr/local/tomcat/bin/startup.sh
        ./startup.sh
    3. 停止
        /usr/local/tomcat/bin/shutdown.sh
        ./shutdown.sh
    

    6. 安装mysql

    1. 安装
    1. 更新数据源
        apt-get update
    2. 安装数据库
        apt-get install mysql-server
    3. 验证
        systemctl status mysql
    
    1. 配置使用密码方式登录
        - 本地登录mysql,此时无需密码
            mysql -u root -p
        - 切换数据库到mysql
            use mysql
        - 修改root账号密码
            update user set authentication_string=password('123456') where user='root';
        - 设置登录模式
            update user set plugin="mysql_native_password";
        - 刷新配置
            flush privileges;
        - 退出mysql
            exit;
        - 重写启动
            systemctl restart mysql
    
    1. 配置远程访问
        - 修改配置文件
            vi /etc/mysql/mysql.conf.d/mysqld.cnf
            注释掉(语句前面加上  # 即可):
            # bind-address = 127.0.0.1
        - 重启mysql
            service restart mysql
        - 登录mysql
            mysql -u root -p
        - 授权root用户允许所有人连接
            grant all privileges on *.* to 'root'@'%' identified by '123456';
            注意:因弱口令无法成功授权解决步骤
            1. 查看和设置密码安全级别
                select @@validate_password_policy;
                set global validate_password_policy=0;
            2. 查看和设置密码长度限制
                select @@validate_password_length;
                set global validate_password_length=1;
            3. 其他配置
                修改配置文件: vi /etc/mysql/mysql.conf.d/mysqld.cnf
                    [client]
                    default-character-set=utf8
                    [mysqld]
                    default-storage-engine=INNODB
                    character-set-server=utf8
                    collation-server=utf8_general_ci
                    lower-case-table-names=1
                    注意: 配置内容追加到对应节点的底部即可
    
    1. 常用命令
    查看版本: mysqladmin -p -u root version
    启动: service mysql start
    停止: service mysql stop
    重启: service mysql restart
    登录: mysql -u root -p
    授权: grant all privileges on *.* to 'root'@'%' identified by 'Your Password';
    
    展开全文
  • Docker每次启动容器,IP及hosts指定

    万次阅读 2018-05-30 12:41:40
    前言 每次在使用Docker启动.../etc/hosts, /etc/resolv.conf和/etc/hostname容器中的这三个文件不存在于镜像,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部。因此,如果在容器修改这些文件的...

    前言

    每次在使用Docker启动Hadoop集群的时候,都需要重新绑定下网卡,固定IP,同时修改/etc/hosts文件,非常麻烦,于是想探寻下原因及优化。

    一、原因

    /etc/hosts, /etc/resolv.conf和/etc/hostname,容器中的这三个文件不存在于镜像,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部。因此,如果在容器中修改这些文件的话,修改部分不会存在于容器的top layer,而是直接写入这三个物理文件中。

    为什么重启后修改内容不存在了?原因是:每次Docker在启动容器的时候,通过重新构建新的/etc/hosts文件,这又是为什么呢?原因是:容器重启,IP地址为改变,hosts文件中原来的IP地址无效,因此理应修改hosts文件,否则会产生脏数据。

    二、解决办法

    在每次启动容器的时候指定IP、hostname、往/etc/hosts里添加hosts,命令如下:

    docker run -itd --name hadoop0 --hostname hadoop0 --net network_my --ip 192.168.10.30 --add-host hadoop1:192.168.10.31 --add-host hadoop2:192.168.10.32  -d -P -p 50070:50070 -p 8088:8088 hadoop:master

    Docker系列(四)Docker 网络模式及配置

    --hostname :指定hostname;
    --net : 指定网络模式
    --ip:指定IP
    --add-host :指定往/etc/hosts添加的host

    以上命令需要docker1.9以上版本才行;

    启动完容器后,进入容器查看 /etc/hosts

    [root@centos-linux-7 /]# docker exec -it hadoop0 bash
    
    [root@hadoop0 /]# cat /etc/hosts
    127.0.0.1   localhost
    ::1 localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    192.168.10.31   hadoop1
    192.168.10.32   hadoop2
    192.168.10.30   hadoop0
    [root@hadoop0 /]# 

    上述命令太长,可写成shell脚本,另外网上有说其它几种方式:
    1、使用dockerfile构建镜像
    2、使用docker-compose启动
    3、修改docker容器启动公共加载的环境变量的配置文件(我没找到我这个版本的该配置文件)

    第一种方式应该是不行的,虽然dockerfile在构建镜像时能设置相关环境变量,但前面提到过IP、hostname、/etc/hosts都是重新加载的,所以得在docker容器启动的时候指定,镜像里的都是不行的;

    第二种,本人暂时对docker-compose不熟悉,也暂时不深入探讨;

    第三种,本人感觉不方便,因为那是公共的,对于不同容器,无法个性化;

    综上所述,本人觉得在容器启动的时候,通过命令行指定最方便,但缺点是命令行太长,不过写成shell脚本就行啦!

    展开全文
  • /etc/hosts, /etc/resolv.conf和/etc/hostname容器中的这三个文件不存在于镜像,而是存在于于/var/lib/docker/containers/,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部。因此,如果在容器修改这些...
  • 先通过docker命令查看镜像ip地址和端口是否正确,是否写的是机器的ip和端口,如果是做对应修改 docker inspect 容器ID 2. 细节错误 配置文件中的url这个属性没有写在spring属性下的第一位置,也会导致连接失败,如果...
  • dubbo还是绑定docker内网ip,但是注册zk时会读取容器主机名对应的ip地址,具体内容一般/etc/hosts最后一行附加上的hostname和ip映射,只要在启动应用之前修改hostname映射ip为宿主机ip即可。 启动dubbo应用之前执行...
  • 我这里docker机器的ip为192.168.4.10,hostname为docker。(我安装的zabbix版本为3.4.4,docker版本:docker-ce 18.06.1) 二,修改docker机器上zabbix_agentd.conf 中的配置如下: #vim /usr/local/etc/zabbix_...
  • 工具 C:\Program Files\Java\jdk1.8.0_172\bin jconsole.exe jvisualvm.exe tomcat配置 ...JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=11.12.11.12 -Dcom.sun.management.jmxremote" JAVA_O
  • -Djava.rmi.server.hostname=`192.168.XX.XX` -Dcom.sun.management.jmxremote -Dcom.su n.management.jmxremote.rmi.port=`7098` -Dcom.sun.management.jmxremote.port=`7099` -Dcom.sun.management.
  • 目录一、TLS加密通信二、搭建部署2.1、搭建环境2.2、server端部署 一、TLS加密通信 在公司的docker业务中,一般为了防止链路劫持、会话劫持等问题导致docker通信时 被中间人攻击,C/S两端...hostnamectl set-hostname
  • 这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为hostname被其他容器访问。默认情况下,应用程序的网络名称基于Compose的工程名称,而项目名称基于docker-compose.yml所在目录的名称。...
  • 一....(1)hostnamectl set-hostname xxx (2)编辑各节点/etc/hosts文件,修改对应ip 2.配置yum安装源(每个节点) 编辑/etc/yum.repo.d/base.repo [base] name=base baseurl=http://xxx g
  • docker学习

    2019-09-18 07:12:29
    --dns 114.114.114.114 指定域名 会直接修改容器的resolv.conf文件 --dns-search ilinux.io 指定搜索域 会直接修改容器的resolv.conf文件 --add-host host:ip 自动注入到容器的hosts文件解析记录 docker port docker...
  • 使用--hostname 解决 然后 容器运行后 gitlab主页 ssh clone前缀 没有 ...或者进入gitlab容器 修改 gitlab.rb 文件 ssh_port配置为与 主机映射相应的端口 比如 -- 1022:22 就要把容器内 默认的22修改为1022 ...
  • 使用docker命令运行容器,注意修改hostname为自己喜欢的名字,-v部分挂载目录要修改为自己的目录。端口映射这里使用的都是安全端口,如果大家的环境没有端口限制或冲突可以使用与容器同端口,如:-p 443:443 -p 80:...
  • 1.修改主机hostname 2.测试环境记得关闭防火墙 在正式的生产环境中则需要启用防火墙并打开相关的端口。 按照k3s文档上的说明,需要启用 6443 和 8472 端口。 如果出现问题,通过命令行工具kubectl 获取异常容器 ...
  • GitLab安装(docker版)

    2021-03-03 14:15:59
    使用docker命令运行容器,注意修改hostname为自己喜欢的名字,-v部分挂载目录要修改为自己的目录。 端口映射这里使用的都是安全端口,如果大家的环境没有端口限制或冲突可以使用与容器同端口,如:-p 443:44
  • Docker在云环境下运行

    2021-01-06 15:25:22
    java.rmi.server.hostname Property: 由于容器有自己的ip地址,我们需要通过更新java. rmmi .server.hostname来使Jmeter通过主机ip进行通信。有关java rmi属性的更多信息,请查看here. 用于JMeter Server/ Slave的...
  • docker部署启动gitlab

    千次阅读 2018-10-23 21:55:20
    完全参考并感谢 GitLab安装、使用教程(Docker版) 一、下载镜像 官方版本是:gitlab/gitlab-ce:latest,为了提升速度我们这里使用阿里云的仓库 ...使用docker命令运行容器,注意修改hostname为...
  • Docker Compose网络设置

    2019-01-22 22:41:43
    这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为hostname被其他容器访问。 默认情况下,应用程序的网络名称基于Compose的工程名称,而项目名称基于docker-compose.yml所在目录的名称。...
  • Docker Compose 网络

    2020-02-06 15:36:18
    这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为 Hostname 被其他容器访问。 默认情况下,应用程序的网络名称基于 Compose 的工程名称,而项目名称基于docker-compose.yml所在目录的...
  • docker 部署seafile

    千次阅读 2019-08-12 08:35:55
    文章目录拉取镜像运行docker 容器修改相关配置待解决问题 拉取镜像 建议使用最新版本 docker pull seafileltd/seafile #seafile 6.3.4版本 运行docker 容器 docker run -d --name seafile \ -e SEAFILE_...
  • 这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为 Hostname 被其他容器访问。 默认情况下,应用程序的网络名称基于 Compose 的工程名称,而项目名称基于 docker-compose.yml 所在目录的...
  • docker部署nacos

    2021-04-20 09:24:10
    拉取最新nacos镜像 docker pull nacos/nacos-server 制作nacos容器 docker run -d --name nacos -p 8848:8848 -e PREFER...需要进入容器修改数据源配置连接一个数据库即可 进入nacos docker exec -it nacos容器id /
  • docker-compose网络配置

    2020-06-10 20:10:27
    这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为hostname被其他容器访问。 默认情况下,应用程序的网络名称基于Compose的工程名称,而项目名称基于docker-compose.yml所在目录的名称。...
  • 7.3.7 hostname 180 7.3.8 platform 180 7.3.9 钩子(Hook) 181 7.4 runC 创建容器流程 182 7.5 Docker containerd 项目介绍 186 7.5.1 架构 187 7.5.2 特性和路线图 188 7.5.3 containerd 和Docker 之间的...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

修改容器hostname