栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker个人学习笔记

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker个人学习笔记

docker run 
-d 后台运行
-p 端口映射
-v 挂在卷
-e 环境配置
--name 容器名


docker search [name] 搜索镜像

docker inspect [imageId]  容器信息

docker start [imageId] 启动镜像

docker attach [imageId] 进入正在运行的容器

docker exec -it [name] [命令]  容器内执行命令
eg:docker exec -it tomcat01-net-01 ping 192.168.0.3


docker rm -f $(docker ps -aq)  清除所有容器


docker logs -f -t --tail 100 [id]  查看日志

docker volume ls  查看所有劵的情况

docker volume inspect [具名劵名]  查看劵挂载信息

DockerFile

FROM             #基础镜像
MAINTAINER         #镜像维护者信息  姓名+邮箱
RUN                #镜像构建的时候需要运行的命令
ADD                #添加内容
WORKDIR            #镜像的工作目录 
VOLUME            #挂载目录
EXPOSE            #暴露端口配置
CMD                #指定容器启动的时候要运行的命令(只有最后一个会生效,可悲替代)
ENTRYPOINT        #可以追加命令
ONBUILD            #当构建一个被继承的dockerfile的时候会运行 ONBUILD 指令
COPY            #类似ADD,将文件拷贝到镜像中
ENV             #构建的时候设置环境命令


docker build -f dockerfile文件路径 -t 镜像名:[tag]


---- docker 网络 ----

docker network ls   查看所有的odcker网络

创建网络(默认桥接)
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 [network_name]
--driver overlay  

查看自己的网络详情
docker network inspect [network_name]

---- 网络连通 ----

docker network connect [network_name] [image_name]    将一个容器和一个网络连通

arp -n #查看本地缓存

宿主机抓包
yum install tcpdump -y

tcpdump -i [网卡编号]  #抓包


--- 搭建redis集群---

1. 创建redis网络
docker network create redis --subnet 172.38.0.0/16

2. 通过脚本创建六个redis配置

for port in $(seq 1 6); 
do 
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-prot 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

3. 启动(单个)

docker run -p 6371:6379 -p 16371:16379 --name redis-1 
-v /mydata/redis/node-1/data:/data 
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

   启动(脚本)

for port in $(seq 1 6); 
do 
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} 
-v /mydata/redis/node-${port}/data:/data 
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
done


4. 进入第一个容器
docker exec -it redis-1 /bin/sh

5. 创建集群
redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379
--cluster-replicas 1

6. 启动客户端测试
redis-cli -c    #打开客户端,连接redis
* -c 集群方式

docker compose

1.下载安装
# 国内镜像地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2. 授权
sudo chmod +x /usr/local/bin/docker-compose

3. 验证
查看一下version,显示有版本号那就说明安装成功了
docker-compose version

docker swarm

docker swarm init --advertise-addr 127.24.82.149

创建一个主节点令牌
docker swarm join-token manager

创建一个工作节点令牌
docker swarm join-token worker

管理节点退出集群
docker swarm leave --force

普通节点退出集群
docker swarm leave

发布服务
docker service create --network [网络名] --replicas [实例数] --name [别名] [镜像]
--replicas 1   # 启动的副本数量
--mode [replicated, global]  #服务类型 replicated:副本(默认)     global:全局


docker service ls   # 查看服务信息

删除一个服务
docker service rm [name]


###### 指定节点运行 #######

添加节点标签
docker node update --label-add role=[标签] [节点id]

查看标签是否添加成功
docker node inspect [节点id]

删除标签
docker node update --label-rm role [节点id]

发布服务
docker service create
  --name [name] --constraint 'node.labels.role == [标签]' [镜像]
  
stack方式发布
    version: '3.7'
    services:
      nginx:
        image: nginx
        ports:
        - target: 80
          published: 80
          protocol: tcp
          mode: host
        deploy:
          placement:
            constraints: [node.labels.role==cluster0001] # 条件约束
        networks:
          - nginx_network
    networks:
      nginx_network:
        external:
        name: nginx_network

扩缩容
docker service update  --replicas 3  [容器名]
docker service scale [容器名]=3


查看各节点状态
docker servce ps [服务名]

查看集群节点
docker node ls


集群部署
docker stack deploy -c xxxxx.yml [容器名]
docker stack ls
docker stack ps [容器名]
docker stack rm  [名]


##############  k8s  ############


查看集群节点
kubectl get node

命令扩展节点副本数量
kubectl scale deployment [pod-name] --replicas=10


# 部署应用
kubectl apply -f app.yaml

# 查看 deployment(发布的应用)
kubectl get deployment

查看部署进度状态
kubectl describe pod/[pod-name]

查看pod
kubectl get pod 

查看pod详情
kubectl get pod -o wide

# 进入 Pod 容器终端, -c container-name 可以指定进入哪个容器。
kubectl exec -it [pod-name] -- bash

# 把集群内端口映射到节点
kubectl port-forward [pod-name] 8090:8080

查看历史版本
kubectl rollout history deployment [pod-name]

# 回到上个版本
kubectl rollout undo deployment [pod-name]

# 回到指定版本
kubectl rollout undo deployment [pod-name] --to-revision=2


删除节点
kubectl delete deployment [pod-name]


重新部署
kubectl rollout restart deployment [pod-name]


# 命令修改镜像,--record 表示把这个命令记录到操作历史中
kubectl set image deployment [pod-name] [pod-name]=[镜像地址] --record


-------  service -------

发布service 
kubectl apply -f service.yaml

查看服务列表
kubectl get svc

查看服务详情
kubectl get svc [service-name]


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/894174.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号