docker中的一些坑

一、/usr/bin/docker-current: No port specified: xxx:<empty>
1.示例:

docker run  -d --name kafka1 \
-p 9092: 9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zk:2181 \
-e KAFKA_ADVERTISED_LISTENERS=192.168.204.128:9092 \
wurstmeister/kafka

2.详细错误如下:

/usr/bin/docker-current: No port specified: 9092:<empty>.
See '/usr/bin/docker-current run --help'.

3.解决方法:
“-p 9092: 9092” 中“:”后不能有空格

二、"=" is not a valid repository/tag: invalid
1.示例:

docker run  -d --name kafka1 \
-p 9092: 9092 \
-e KAFKA_BROKER_ID = 0 \
-e KAFKA_ZOOKEEPER_CONNECT = zk:2181 \
-e KAFKA_ADVERTISED_LISTENERS = 192.168.204.128:9092 \
wurstmeister/kafka

2.详细错误如下:

/usr/bin/docker-current: Error parsing reference: "=" is not a valid repository/tag: invalid reference format.
See '/usr/bin/docker-current run --help'.

3.解决方法:
“=” 前后不能有空格

三、启动镜像后没反应
1.问题
启动kafka后没报错,但ps的时候发现没有kafka进程,加入‘-a’参数显示进程时发现kafka的状态为‘Exited (1)’
2.查看log

docker logs kafka
[root@VM_0_12_centos ~]# docker run -d --name kafka1 \
> -p 9091:9091 \
> -e KAFKA_BROKER_ID=0 \
> -e KAFKA_ZOOKEEPER_CONNECT=zk:2181 \
> -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.204.128:9091 \
> -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9091 \
> -t wurstmeister/kafka
bc333679d542f15e50f284c55dba7d39cd96e9afec4b4c7682c917426aa2d97c
[root@VM_0_12_centos ~]# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                                NAMES
4736726bbb4b        wurstmeister/zookeeper   "/bin/sh -c '/usr/..."   23 hours ago        Up 23 hours         22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   zk
[root@VM_0_12_centos ~]# docker ps -a
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                      PORTS                                                NAMES
bc333679d542        wurstmeister/kafka       "start-kafka.sh"         13 seconds ago      Exited (1) 11 seconds ago                                                        kafka1
4736726bbb4b        wurstmeister/zookeeper   "/bin/sh -c '/usr/..."   23 hours ago        Up 23 hours                 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   zk
[root@VM_0_12_centos ~]# docker logs kafka1
Excluding KAFKA_HOME from broker config
[Configuring] 'port' in '/opt/kafka/config/server.properties'
[Configuring] 'advertised.listeners' in '/opt/kafka/config/server.properties'
[Configuring] 'broker.id' in '/opt/kafka/config/server.properties'
Excluding KAFKA_VERSION from broker config
[Configuring] 'listeners' in '/opt/kafka/config/server.properties'
[Configuring] 'zookeeper.connect' in '/opt/kafka/config/server.properties'
[Configuring] 'log.dirs' in '/opt/kafka/config/server.properties'
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Out of memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# //hs_err_pid1.log

3.解决方法:
Kafka默认使用的JVM内存配置:

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

如果服务器内存较小,需要调整启动配置。
打开/opt/kafka_2.11-2.0.0/binkafka-server-start.sh,降低启动内存大小.
如:export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M"

docker run -d --name kafka1 \
-p 9091:9091 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zk:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.204.128:9091 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9091 \
-e KAFKA_HEAP_OPTS="-Xmx512M -Xms512M" \
-t wurstmeister/kafka

四、与zookeeper连接问题
1.报错

[2019-06-18 03:01:59,079] INFO Opening socket connection to server 0.0.0.1/0.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2019-06-18 03:01:59,080] ERROR Unable to open socket to 0.0.0.1/0.0.0.1:2181 (org.apache.zookeeper.ClientCnxnSocketNIO)
[2019-06-18 03:01:59,183] INFO EventThread shut down for session: 0x0 (org.apache.zookeeper.ClientCnxn)
[2019-06-18 03:01:59,183] INFO Session: 0x0 closed (org.apache.zookeeper.ZooKeeper)
[2019-06-18 03:01:59,186] INFO [ZooKeeperClient] Closed. (kafka.zookeeper.ZooKeeperClient)
[2019-06-18 03:01:59,190] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
	at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:242)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251)
	at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:238)
	at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:96)
	at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1825)
	at kafka.server.KafkaServer.createZkClient$1(KafkaServer.scala:361)
	at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:385)
	at kafka.server.KafkaServer.startup(KafkaServer.scala:205)
	at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:38)
	at kafka.Kafka$.main(Kafka.scala:75)
	at kafka.Kafka.main(Kafka.scala)
[2019-06-18 03:01:59,193] INFO shutting down (kafka.server.KafkaServer)
[2019-06-18 03:01:59,201] INFO shut down completed (kafka.server.KafkaServer)
[2019-06-18 03:01:59,207] ERROR Exiting Kafka. (kafka.server.KafkaServerStartable)
[2019-06-18 03:01:59,212] INFO shutting down (kafka.server.KafkaServer)

3.解决方法
将配置中 KAFKA_ZOOKEEPER_CONNECT的zookeeper的端口设置为外网ip,因为127.0.0.1或0.0.0.0相对kafka镜像来说是自己的镜像内部的内部ip,docker镜像外部无法访问。
四、
1.报错

[2019-06-18 07:26:47,641] INFO Initiating client connection, connectString=47.94.204.232:2183 sessionTimeout=6000 watcher=kafka.zookeeper.ZooKeeperClient$ZooKeeperClientWatcher$@48e4374 (org.apache.zookeeper.ZooKeeper)
[2019-06-18 07:26:47,657] INFO Opening socket connection to server 47.94.204.232/47.94.204.232:2183. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2019-06-18 07:26:47,659] INFO [ZooKeeperClient] Waiting until connected. (kafka.zookeeper.ZooKeeperClient)
[2019-06-18 07:26:53,662] INFO [ZooKeeperClient] Closing. (kafka.zookeeper.ZooKeeperClient)
[2019-06-18 07:26:53,668] WARN Client session timed out, have not heard from server in 6014ms for sessionid 0x0 (org.apache.zookeeper.ClientCnxn)
[2019-06-18 07:26:53,772] INFO Session: 0x0 closed (org.apache.zookeeper.ZooKeeper)
[2019-06-18 07:26:53,773] INFO EventThread shut down for session: 0x0 (org.apache.zookeeper.ClientCnxn)
[2019-06-18 07:26:53,776] INFO [ZooKeeperClient] Closed. (kafka.zookeeper.ZooKeeperClient)
[2019-06-18 07:26:53,780] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
	at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:242)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251)
	at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:238)
	at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:96)
	at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1825)
	at kafka.server.KafkaServer.createZkClient$1(KafkaServer.scala:361)
	at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:385)
	at kafka.server.KafkaServer.startup(KafkaServer.scala:205)
	at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:38)
	at kafka.Kafka$.main(Kafka.scala:75)
	at kafka.Kafka.main(Kafka.scala)

3.修改
将将PLAINTEXT://47.94.204.232:9091换为PLAINTEXT://:9093

docker run -d --name kafka3 \
-p 9093:9093 \
-e KAFKA_BROKER_ID=3 \
-e KAFKA_ZOOKEEPER_CONNECT=47.94.204.232:2183 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://:9093 \
-e KAFKA_LISTENERS=PLAINTEXT://:9091 \
-t wurstmeister/kafka
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值