一.准備基礎環境
1.jdk
鏈接:https://pan.baidu.com/s/1OZx40UEaH0vv4EW4B8dXfQ
提取碼:ualu
2.zookeeper 自行下載
3.將這些包都放在/opt/docker 目錄下,這個目錄后續作為Dockerfile的啟動目錄
二.安裝docker
1安裝docker
yum install docker
2 更改DOCKER 存儲目錄
因為后續還要制作別的鏡像,根目錄容量不夠,需要修改docker的掛載路徑
解決方法:參考https://blog.csdn.net/justlpf/article/details/103716138
根據docker服務的安裝配置文件進行修改
vi /usr/lib/systemd/system/docker.service
在ExectStart=xxx 中添加屬性
ExecStart=xxx --graph /data/lib/docker
重新更新一下docker服務
systemctl disable docker systemctl enable docker systemctl daemon-reload systemctl start docker
三.下載基礎鏡像
1.下載centos7.2的基礎鏡像
docker pull docker pull docker.io/centos:centos7.2.1511
2. 查看docker 鏡像
docker images
四.制作zookeeper環境包
1.解壓文件
tar -zxvf /opt/zookeeper.tar
2.創建一個啟動zookeeper的腳本
vim start.sh
#!/bin/bash
export ZOOKEEPER_HOME=/opt/zookeeper #mkdir -p /opt/zookeeper/data
${ZOOKEEPER_HOME}/bin/zkServer.sh start-foreground
3.創建zookeeper data數據目錄
mkdir -p /opt/zookeeper/data
4.創建zoo.cfg文件,進入zookeeper 目錄
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
5.修改配置文件zoo.cfg的內容
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/zookeeper/data clientPort=2181
6.將修改后的zookeeper文件重新打成tar包
tar -czvf zookeeper.tar zookeeper
將這個包放到/opt/docker目錄下。 到此:zookeeper的基礎包就制作好了
五.制作jdk環境包
1.安裝jdk
rpm -ivh jdk-8u74-linux-x64.rpm
默認的jdk安裝路徑為/usr/java/jdk1.8.0_211
2.將/usr/java/jdk1.8.0_211 文件復制到 /opt/docker 下並改名為jdk
cp -r /usr/java/jdk1.8.0_211 /opt/docker
mv /opt/docker/jdk1.8.0_211 /opt/docker/jdk
3.將jdk打成tar包
tar -czvf jdk.tar /opt/docker/jdk
將這個包放到/opt/docker目錄下。到此:jdk的環境包准備好了
六.編寫Dockerfile文件
1.創建dockerfile文件
vim /opt/docker/Dockerfile
2.修改內容如下
# FROM命令 定義基礎包 FROM docker.io/centos:centos7.2.1511 # ADD命令 將打包文件上傳到鏡像的根目錄/ ,會自動解壓 ADD zookeeper.tar /opt
ADD jdk.tar /opt # WORKDIR命令 定義工作目錄 WORKDIR /opt # ENV命令 設置環境 ENV JAVA_HOME /opt/jdk1.8.0_211 ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH $JAVA_HOME/bin:$PATH # RUN命令 執行制作鏡像過程,一個RUN對應一層 #RUN yum clean all \ RUN rm -vf /etc/localtime \ #&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime\ #&& rm -rfv /usr/share/backgrounds/* \ #&& rm -rfv /usr/share/doc/* \ #&& rm -rfv /usr/share/man/* \ #&& cd /usr/share/zoneinfo/ && ls |grep -v "Asia"|xargs rm -rfv \ #&& rm -rfv /var/cache/yum/* \ #&& rpm --rebuilddb \ && chmod 755 /opt/zookeeper/start.sh ENTRYPOINT /opt/zookeeper/start.sh
七.構建鏡像
1.在/opt/docker目錄下構建鏡像
docker image build -t zookeeper_cool:v1.0 .
2.查看鏡像
3.啟動容器:映射端口,並且將Docker掛載本地目錄及實現文件共享,這樣重啟容器,zk的數據不會丟失
docker run --rm --name coolsummer -p 2181:2181 -v /opt/docker/zookeeper/data:/opt/zookeeper/data -d zookeeper_cool:v1.0
八.驗證zk是否啟動成功
zkCli.sh -server 127.0.0.1:2181
啟動成功,問題解決