Welcome to Elvin's blog

docker容器入门与实践

docker容器入门与实践
技术分享使用


虚拟化

虚拟化技术的优点和缺点

虚拟机: VMwareHaper-VKVMESXIOpenstackProxmox VE
容器: docker
个人可以安装VMware,或使用公有云,远程登录后用于测试、下载文件等

虚拟机:硬件+文件系统 (CPU、内存、硬盘、作系统)
容器: 文件系统 (操作系统), 轻量、秒级运行、环境一致性

Linux虚拟化与容器化
Docker与KVM之间的区别

Docker

镜像、容器、仓库
docker基础教程
Docker实战案例视频

Docker安装

官方安装文档 https://docs.docker.com/engine/install/

#环境ubuntu
#安装docker,使用阿里云镜像加速
curl -s http://elven.vip/ks/sh/docker.sh |bash

#查看docker信息
docker info

运行容器

#临时体验centos8系统  --rm退出后删除容器
docker run -it --rm -h centos centos:8 bash
#查看系统
cat /etc/os-release
cat /etc/redhat-release

运行nginx容器, 参考 https://www.cnblogs.com/elvi/p/8313131.html

#下载、查看镜像
docker pull nginx
docker pull nginx:alpine
docker images nginx

#运行容器nginx
docker run -d -p 81:80 --name nginx1 nginx
docker run -d -p 82:80 -v /tmp/test:/test --name nginx2 nginx:alpine

#查看容器
docker ps

#查看端口
netstat -antp
curl 127.0.0.1:81
#外部浏览器访问ip:81正常

#进入容器   #退出容器 Ctrl+d
docker exec -it nginx1 sh
docker exec -it nginx2 sh
#查看容器里文件系统
cat /etc/os-release

#查看日志(访问nginx2容器出现日志)
docker logs -f nginx2

#删除容器
docker rm -f nginx1 nginx2

构建镜像Dockerfile

docker网络实践

docker存储volume

常见镜像 nginx busybox tomcat mysql

docker镜像常见文件系统 debianubuntucetnosalpine

docker-composes 容器批量管理

#docker-composes安装
curl -s http://elven.vip/ks/sh/docker-compose.sh |bash
docker-compose --version

实例 Docker部署Zabbix+Grafana监控 https://www.cnblogs.com/elvi/p/8698573.html

#下载zabbix部署yaml
cd /opt  
git clone https://gitee.com/almi/zabbix-docker.git

#运行容器
cd zabbix-docker  
docker-compose up -d
#查看
docker-compose ps 

#删除
docker-compose down

docker-sware 容器集群

参考 https://www.cnblogs.com/elvi/p/8424378.html

#创建swarm集群
docker swarm init
#获得添加节点代码docker swarm join

##查看集群节点
docker node ls

#创建nginx服务
docker service create --name nginx  --replicas 2 --publish 80:80 alivv/nginx:node

#查看swarm集群中的服务
docker service ls
docker service ps nginx

#修改服务实例数量为3
docker service scale nginx=3

#访问80端口测试
curl -s 127.0.0.1
for n in $(seq 1 10);do curl -s 127.0.0.1; done

#删除nginx服务
docker service rm nginx

k8s集群

推荐视频教程 https://www.bilibili.com/video/BV1w4411y7Go

k8s中文社区文档 https://www.kubernetes.org.cn/k8s

安装k8s参考 https://www.cnblogs.com/elvi/p/8976305.html

#安装k8s
#1 部署k8s master节点
export Ver=1.17.4
curl -s http://elven.vip/ks/k8s/k8s.master.ha.sh |bash

#2 添加Node节点
#安装kubelet
export Ver=1.17.4
curl -s http://elven.vip/ks/k8s/kubelet.sh |bash
#按master节点提示执行加入 kubeadm join MasterIP:6443 --token 

k8s命令行简单实例

#查看k8s节点
kubectl get nodes

#运行一个Deployment ,名称myweb,镜像alivv/nginx:node
kubectl run myweb --image=alivv/nginx:node

#创建随机端口映射的service
kubectl expose deployment myweb --type=NodePort --port=80

#查看
kubectl  get svc
kubectl  get deploy
kubectl  get rs
kubectl  get pod

#增加pod数量
kubectl scale deployment/myweb --replicas=3
#查看Pod个数
kubectl get pod -o wide

#访问service的ClusterIP
kubectl  get svc |awk '/myweb/{print $3}'
VIP=$(kubectl  get svc |awk '/myweb/{print $3}')
curl $VIP

#删除
kubectl scale deployment/myweb --replicas=0
kubectl delete service myweb
kubectl delete deployment myweb

使用yaml文档创建服务

#创建
kubectl apply -f http://elvin.vip/ks/k8s/demo/myapp-demo.yaml
#查看

#删除
kubectl  delete -f http://elvin.vip/ks/k8s/demo/myapp-demo.yaml
posted @ 2020-04-15 13:32  blog-elvin-vip  阅读(280)  评论(0)    收藏  举报