1、删除以前安装的docker
sudo yum remove docker > docker-client > docker-client-latest > docker-common > docker-latest > docker-latest-logrotate > docker-logrotate > docker-engine
2、安装依赖包
sudo yum install -y yum-utils > device-mapper-persistent-data > lvm2
3、设置镜像源
sudo yum-config-manager > --add-repo > https://download.docker.com/linux/centos/docker-ce.repo
4、安装 和启动Docker-CE,添加用户
sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo gpasswd -a $USER docker #将当前用户添加至docker用户组 newgrp docker #更新docker用户组
5、镜像加速
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com"] } EOF
6、拉取镜像
docker pull centos
7、查看镜像
docker images
8、运行容器
docker run -itd --name centos-latest1 centos:latest
9、容器安装成功, docker ps 命令查看容器的运行信息
设置虚拟机重启,则容器自动起:
docker update mysql --restart = always
10、进入到容器
docker exec -it 30f0 /bin/bash
11、从运行的容器保存到镜像
docker commit 30f0 3030copy
12、网络相关
--network host: 使用主机上的网络配置,如果不用这种模式,而用默认的bridge模式,会导致容器跨主机间通信失败
yum install net-tools #docker中ifconfig不可用 ifconfig ip addr show docker network list brctl show docker network create bridegnetDmeo docker run --name prinetdemo1 --rm -it --network=bridegnetDmeo centos /bin/bash
docker run -itd --name centos-zookeeper1 --network=bridegnetDmeo centos:latest /bin/bash docker inspect bridegnetDmeo
13、文件拷贝:
宿主机中的文件夹( /home/yhq/Downloads/jdk1.8.0_251/ ) 拷贝到 centos-kafka1容器中的/opt目录:
docker cp /home/yhq/Downloads/jdk1.8.0_251/ centos-kafka1:/opt
14、容器中安装jdk:
先把jdk包拷贝到容器中
建文件夹:mkdir /usr/lib/jvm
安装vim命令:yum -y install vim
编辑文件:vim ~/.bashrc (非交互式:修改 /etc/profile 文件 执行source /etc/profile使生效)
添加:
export JAVA_HOME=/opt/jdk1.8.0_251
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
执行source ~/.bashrc使得环境立即生效
永久生效方法:
/.bashrc里面加一句source /etc/profile
15、容器保存为镜像
docker commit -a 'yaohuiqin' -m 'zookeeper' bd2e myzookeeper (将容器bd2e保存为镜像名称为myzookeeper镜像)
16、镜像导出
docker save -o myzookeeper1.tar myzookeeper1:latest
镜像导入
docker load -i myzookeeper1.tar
17、docker端口映射
telnet命令安装:
yum install xinetd telnet telnet-server -y
18、zookeeper集群:
conf/zoo.cfg
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tmp/zookeeper/data dataLogDir=/tmp/zookeeper/log clientPort=2181 server.3=172.19.0.2:2888:3888 server.4=172.19.0.3:2888:3888 server.5=172.19.0.4:2888:3888
touch myid echo 5 > myid
docker run -itd --name centos-zookeeper2 --network=bridegnetDmeo myzookeeper1:latest /bin/bash
docker exec -it centos-zookeeper1 /bin/bash
vim tmp/zookeeper/data/myid
//宿主机中查看容器中的文件 docker exec centos-zookeeper1 cat tmp/zookeeper/data/myid
zookeeper 端口:
2181:对client端提供服务
3888:选举leader时使用
2888:集群内机器通讯使用(leader监听此端口)
server.A=B:C:D
其中 A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的 ip 地址;
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口
echo stat | nc 172.19.0.3 2181
docker exec -it b44d7d5d3903 ip addr