docker使用DockerFile创建zookeeper镜像和kafka镜像

avatar 2019年11月16日22:32:02 评论 106 views

本文介绍 docker 的基本使用和使用 DockerFile 创建一个 zookeeper 镜像,然后启动。

一、docker 常用命令

先介绍一下几个简单的常用命令吧

1. 查看 docker 版本

docker version

 

2.查看镜像列表

docker images

 

3.查看正在启动的容器

docker ps

查看所有的容器

docker ps -a

 

4.删除容器

docker rm 容器ID

 

5.删除镜像

docker rm 镜像ID

注意:要先删除容器再删除镜像,先删除子镜像再删除父镜像,强制删除可以加 -f

 

6.创建容器

docker run [可选参数] 镜像名称:版本 [命令]

docker run --name mynginx -d nginx:latest

 

7.启动,停止,重启容器

docke start 容器ID

docker stop 容器ID

docker restart 容器ID

 

8.进入容器内部

docker exec -it 容器ID/名称 bash

从容器内部出来

exit

 

9.查看容器日志

docker logs 容器ID

如果指定查看末尾几条

docker logs --tail="10" 容器ID

 

二、使用DockerFile创建zookeeper镜像

DockerFile 文件内容如下

zookeeper.DockerFile

  1. FROM centos:6.6
  2. RUN yum -y install vim lsof wget tar bzip2 unzip vim-enhanced passwd sudo yum-utils hostname net-tools rsync man git make automake cmake patch logrotate python-devel libpng-devel libjpeg-devel pwgen python-pip
  3. RUN mkdir /opt/java &&\
  4.     wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz -P /opt/java
  5. RUN tar zxvf /opt/java/jdk-8u131-linux-x64.tar.gz -C /opt/java &&\
  6.     JAVA_HOME=/opt/java/jdk1.8.0_131 &&\
  7.     sed -i "/^PATH/i export JAVA_HOME=$JAVA_HOME" ~/.bash_profile &&\
  8.     sed -i "s%^PATH.*$%&:$JAVA_HOME/bin%g" ~/.bash_profile &&\
  9.     source ~/.bash_profile
  10. ENV ZOOKEEPER_VERSION "3.4.14"
  11. RUN mkdir /opt/zookeeper &&\
  12.     wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-$ZOOKEEPER_VERSION/zookeeper-$ZOOKEEPER_VERSION.tar.gz -P /opt/zookeeper
  13. RUN tar zxvf /opt/zookeeper/zookeeper*.tar.gz -C /opt/zookeeper
  14. RUN echo "source ~/.bash_profile" > /opt/zookeeper/start.sh &&\
  15.     echo "cp /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo_sample.cfg /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo.cfg" >> /opt/zookeeper/start.sh &&\
  16.     echo "/opt/zookeeper/zookeeper-$"ZOOKEEPER_VERSION"/bin/zkServer.sh start-foreground" >> /opt/zookeeper/start.sh
  17. EXPOSE 2181
  18. ENTRYPOINT ["sh""/opt/zookeeper/start.sh"]

稍微说明下

使用 centos6.6 为基础镜像

然后安装常用的工具

下载 jdk ,并解压配置环境变量

下载 zookeeper, 并解压

将 zookeeper 启动命令写到一个新文件 start.sh

对外暴露端口 2181

容器启动入口命令为 sh /opt/zookeeper/start.sh

 

下面介绍一下怎么用 DockerFile 文件生成镜像和运行

1、将 zookeeper.DockerFile 上传到服务器

上传可以使用 FTP 工具或者使用 SCP 命令

如将本地的一个 docker 文件夹上传到服务器的 /www 目录,命令如下

scp -r /Users/liuyanzhao/Documents/docker root@IP地址:/www/

 

2、创建镜像

docker build -t saysky/zookeeper:3.4.6 -f zookeeper.Dockerfile .

 

3.创建容器

docker run -itd --name zookeeper -h zookeeper -p2181:2181 saysky/zookeeper:3.4.6 bash

会返回容器ID,默认容器未启动

或者通过 docker ps -a 查看

 

4.启动,停止,重启容器

docker start/stop/restart

 

三、使用DockerFile创建kafka镜像

顺便把 kafka 的也提一下,因为后面我们要使用 docker 介绍 zookeeper 和 kafka 集群

1. DockerFile 文件内容如下

  1. FROM centos:6.6
  2. RUN yum -y install vim lsof wget tar bzip2 unzip vim-enhanced passwd sudo yum-utils hostname net-tools rsync man git make automake cmake patch logrotate python-devel libpng-devel libjpeg-devel pwgen python-pip
  3. RUN mkdir /opt/java &&\
  4.     wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz -P /opt/java
  5. RUN tar zxvf /opt/java/jdk-8u131-linux-x64.tar.gz -C /opt/java &&\
  6.     JAVA_HOME=/opt/java/jdk1.8.0_131 &&\
  7.     sed -i "/^PATH/i export JAVA_HOME=$JAVA_HOME" ~/.bash_profile &&\
  8.     sed -i "s%^PATH.*$%&:$JAVA_HOME/bin%g" ~/.bash_profile &&\
  9.     source ~/.bash_profile
  10. ENV ZOOKEEPER_VERSION "3.4.14"
  11. RUN mkdir /opt/zookeeper &&\
  12.     wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-$ZOOKEEPER_VERSION/zookeeper-$ZOOKEEPER_VERSION.tar.gz -P /opt/zookeeper
  13. RUN tar zxvf /opt/zookeeper/zookeeper*.tar.gz -C /opt/zookeeper
  14. RUN echo "source ~/.bash_profile" > /opt/zookeeper/start.sh &&\
  15.     echo "cp /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo_sample.cfg /opt/zookeeper/zookeeper-"$ZOOKEEPER_VERSION"/conf/zoo.cfg" >> /opt/zookeeper/start.sh &&\
  16.     echo "/opt/zookeeper/zookeeper-$"ZOOKEEPER_VERSION"/bin/zkServer.sh start-foreground" >> /opt/zookeeper/start.sh
  17. EXPOSE 2181
  18. ENTRYPOINT ["sh""/opt/zookeeper/start.sh"]

 

2.构建kafka镜像
docker build -t saysky/kafka:2.3.1 -f kafka.Dockerfile .
3.创建 kafka 容器
docker run -itd --name kafka -h kafka -p9092:9092 --link zookeeper saysky/kafka:2.3.1 bash

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: