安装docker,并设置环境

yum install -y docker

systemctl enable docker

service docker start

 

docker的一个管理界面

docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker

 

 

设置Dockerfile

 

# 从一个基础镜像centos:6.8开始构建
FROM centos:6.8
# 维护者信息
MAINTAINER xiaofancn "xiaofancn@qq.com"

#容器环境处理
RUN mkdir /usr/local/jdk

#把当前目录下的jdk文件夹添加到镜像
ADD jdk1.8.0_161  /usr/local/jdk/jdk1.8.0_161
ADD zookeeper-3.4.11  /root/zookeeper-3.4.11

ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_161
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $JAVA_HOME/bin:$PATH

RUN java -version



VOLUME ["/data1"]

#启动容器的时候执行的命令
#容器入口,把zookeeper容器变得像一个zookeeper服务器一样
#docker run -p 2181:2181 --name docker-zookeeper xiaofancn/zookeeper print-cmd
ENTRYPOINT ["/root/zookeeper-3.4.11/bin/zkServer.sh"]
#前台运行, 如果不设置这个, zookeeper后台运行的话, 容器会自动关闭, 进入Exited状态
#容器启动的时候跟的参数=docker run -p 2181:2181 --name docker-zookeeper xiaofancn/zookeeper start-foreground
#启动的时候追加参数如print-cmd,会覆盖默认参数
#start-foreground 输出日志,容器内保持日志的输出,docker则保持up状态。
CMD ["start-foreground"]

#暴露的端口
EXPOSE 2181 2888 3888

 

构建镜像

 

docker build -t="xiaofancn/zookeeper" .

 

启动前清理

docker stop  docker-zookeeper && docker rm  docker-zookeeper

 

docker run  -d -p 2181:2181 --name docker-zookeeper xiaofancn/zookeeper  

docker inspect docker-zookeeper

 

链接容器的zk

./zookeeper-3.4.11//bin/zkCli.sh -server localhost:2181

 

新建一组子网

docker network create --subnet=172.18.0.0/16 shadownet

 

绑定ip启动zk

docker run --network=shadownet --ip=172.18.0.10  -d  -p 2181:2181  --name docker-zookeeper_1 xiaofancn/zookeeper

docker run --network=shadownet --ip=172.18.0.11  -d  -p 2182:2181  --name docker-zookeeper_2 xiaofancn/zookeeper

 

 

开两个控制台分别执行

docker run  -it --network=shadownet --ip=172.18.0.12 centos:6.8 /bin/bash

docker run  -it --network=shadownet --ip=172.18.0.13 centos:6.8 /bin/bash

 

修改镜像(由于centos没有ping工具包,在基础包上安装后,提交成一个版本)

 

docker run  -it --network=shadownet --ip=172.18.0.12 centos:6.8 /bin/bash

[root@e2bdf95d0658 /]#     yum install iputils -y && exit

修改的镜像历史为 e2bdf95d0658 并提交成centos:6.8.v1 版本

docker commit -m "Added ping " -a "Docker Centosping" e2bdf95d0658 centos:6.8.v1

从提交版再进入

docker run  -it --network=shadownet --ip=172.18.0.12 centos:6.8.v1 /bin/bash

[root@56ddbd3270b2 /]# ping www.baidu.com

        PING www.a.shifen.com (119.75.216.20) 56(84) bytes of data.

        64 bytes from 119.75.216.20: icmp_seq=1 ttl=54 time=7.94 ms

 

 

  

参考

https://www.cnblogs.com/zhouyalei/p/6400951.html

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐