Consul

部署 docker-compose 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 consul: image: consul:latest container_name: consul ports: - "8300:8300" - "8301:8301" - "8302:8302" - "8500:8500" - "8600:8600" volumes: - /docker-data/consul-data:/consul/data command: agent -server -ui -node=nsn -bootstrap-expect=1 -client=0.0.0.0 -advertise=124.222.162.210 -datacenter=nebula restart: always networks: common-net: aliases: - consul 端口详解 8300: 集群中各个节点相互通信 8301: 节点之间健康检查等交互 8302: 数据中心之间的信息同步 8500: 网页管理界面访问 8600: DNS服务器访问 参数详解 agent 启动一个Agent -server 该节点类型为Server节点,不指定则为Client节点 -ui 开启网页可视化管理界面 -node 指定该节点名称(不可重复) -bootstrap-expect 最少集群的Server节点数量,少于这个值则集群失效,单机则设为1,client节点可以不设置 -advertise 指定本节点外网地址,本机部署可省略 -client 指定外部连接地址,0.0.0.0表示外网全部可以连接 -datacenter 指定数据中心名,同一个数据中心中的节点应一致 节点类型 Server节点:这是Consul集群的核心组成部分,用于维护集群的状态、处理查询请求、执行一致性协议以及提供服务发现和健康检查等功能 Client节点:用于向集群提交查询请求,并将请求转发给Server节点处理,作为服务发现和健康检查的代理,这类节点有着负载均衡、健康检查和故障转移等作用,降低Server节点的压力,搭建集群时,Client节点不是必须的 节点通过 docker exec -it consul consul join 节点IP来加入其他节点 ...

2024-10-13 · 2 分钟 · Nebula

Docker

基础知识 基本概念 镜像(image):从DockerHub中拉取的就是镜像,镜像中不仅包含了软件本身,还包含了其运行所需要的环境、配置、系统级函数库。 容器(container):镜像运行时就有自己独立的环境,可以跨系统运行,也不需要手动再次配置环境了。 数据卷(volume):容器内目录与宿主机目录之间映射的桥梁 网络(network):容器的网络IP是一个虚拟的IP,其值并不固定与某一个容器绑定 DockerCompose :实现多个相互关联的Docker容器的快速部署 基础命令 命令 说明 docker rmi 删除本地镜像 docker run 创建并运行容器(不可重复创建) docker stop 停止指定容器 docker start 启动指定容器 docker restart 重新启动容器 docker rm 删除指定容器 docker ps 查看容器 docker logs 查看容器运行日志 docker exec 进入容器 docker save 保存镜像到本地压缩文件 docker load 加载本地压缩文件到镜像 docker inspect 查看容器详细信息 命令演示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 # 第1步,去DockerHub查看nginx镜像仓库及相关信息 # 第2步,拉取Nginx镜像 docker pull nginx # 第3步,查看镜像 docker images # 第4步,创建并允许Nginx容器 docker run -d --name nginx -p 80:80 nginx # 第5步,查看运行中容器 docker ps # 也可以加格式化方式访问,格式会更加清爽 docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}" # 第6步,访问网页,地址:http://虚拟机地址 # 第7步,停止容器 docker stop nginx # 第8步,查看所有容器 docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}" # 第9步,再次启动nginx容器 docker start nginx # 第10步,再次查看容器 docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}" # 第11步,查看容器详细信息 docker inspect nginx # 第12步,进入容器,查看容器内目录 docker exec -it nginx bash # 或者,可以进入MySQL docker exec -it mysql mysql -uroot -p # 第13步,删除容器 docker rm nginx # 发现无法删除,因为容器运行中,强制删除容器 docker rm -f nginx 基础参数 参数 解释 -d 容器以后台进程运行 – name <name> 给容器起个名字 -p <宿主机端口>:<容器内端口> 设置端口映射 -e <KEY>=<VALUE> 配置容器内进程运行时参数 -i 启动交互式操作 -t 分配伪终端,通常和-i一起使用 <REPOSITORY>:[Tag] 设置镜像名称,TAG为空则默认为least 通过 -it进入伪终端后, 按下 Ctrl + D 或者输入 exit 命令结束终端会话并退出容器 在终端中按下 Ctrl + P,然后按下 Ctrl + Q。使终端会话保持运行,但退出容器 容器不会停止容器的运行。如果需要停止容器,使用 docker stop 命令 退出后可以通过docker attach <container_name> 或 docker attach <container_id> 来重新连接到容器的终端 也可以通过docker exec -it <container_name> /bin/bash 或 docker exec -it <container_id> /bin/bash 启动一个新的终端会话。 ...

2024-08-09 · 10 分钟 · Nebula