【云原生】Docker高级篇之网络、compose、可视化、监控 | 您所在的位置:网站首页 › 战盾鱼竿T06 › 【云原生】Docker高级篇之网络、compose、可视化、监控 |
文章目录
docker虚悬镜像Docker网络常用命令:网络模式
Docker-compose容器编排Compose使用的三个步骤Compose常用命令:
Docker轻量级可视化工具PortainerDocker重量级容器监控之 CAdvisor+InfluxDB+Granfana
【云原生】Docker快速入门实操 【云原生】Docker镜像详解 docker虚悬镜像仓库名、标签都是的镜像,俗称虚悬镜像dangling image 查看是否有虚悬镜像:docker image ls -f dangling=true 虚悬镜像已经失去存在价值,可以删除:docker image prune Docker网络Docker启动后,会默认创建3大网络模式。 常用命令:查看网络:docker network ls 查看网络源数据:docker network inspect XXX网络名字 删除网络:docker network rm XXX网络名字 网络模式docker容器内部的ip是有可能会发生改变的。 bridge模式:使用–network bridge指定,默认使用docker0。Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),该桥接网络的名称为docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信。 host模式:使用–network host指定。直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行NAT 转换。 none模式:使用–network none指定。在none模式下,并不为Docker容器进行任何网络配置。 也就是说,这个Docker容器没有网卡、IP、路由等信息,只有一个lo,需要我们自己为Docker容器添加网卡、配置IP等。 container模式:使用–network container:NAME或者容器ID指定。新建的容器和已经存在的一个容器共享一个网络ip配置而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。 自定义网络模式:默认使用的是桥接网络bridge。如果不自定义的话,两个之间按照IP地址ping是OK的,但是按照服务名ping结果会显示Name or service not known,要解决这个问题就可以采取自定义网络模式: docker network create zagiee 新建容器加入上一步新建的自定义网络 docker run -d -p 8081:8080 --network zagiee --name tomcat81 billygoo/tomcat8-jdk8 docker run -d -p 8082:8080 --network zagiee --name tomcat82 billygoo/tomcat8-jdk8 然后互相ping测试 docker exec - it tomcat81 bash ping tomcat82 docker exec - it tomcat82 bash ping tomcat81 就可以ping通了 自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能通)。 Docker-compose容器编排Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用,实现对Docker容器集群的快速编排。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。 安装步骤: curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose- ( u n a m e − s ) − (uname -s)- (uname−s)−(uname -m)” -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version Compose使用的三个步骤1.编写Dockerfile定义各个微服务应用并构建出对应的镜像文件 2.使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。 3.最后,执行docker-compose up命令 来启动并运行整个应用程序,完成一键部署上线。 1.mvn package命令将微服务形成新的jar包 并上传到Linux服务器/mydocker目录下 2.编写Dockerfile 3.构建镜像:docker build -t zag_docker:1.6 . 4.1如果不用Compose可能就得分别多次执行docker run(存在的问题:先后顺序要求固定,先mysql+redis才能微服务访问成功;多个run命令…;容器间的启停或宕机,有可能导致IP地址对应的容器实例变化,映射出错, 要么生产IP写死(可以但是不推荐),要么通过服务调用),到这结束。 4.2使用Compose 5.编写docker-compose.yml文件 6.执行 docker-compose up 或者 执行 docker-compose up -d 7.关停:docker-compose stop,相关的直接全部停止。 Compose常用命令:在docker-compose.yml文件的父级目录下运行 docker-compose -h # 查看帮助 docker-compose up # 启动所有docker-compose服务 docker-compose up -d # 启动所有docker-compose服务并后台运行 docker-compose down # 停止并删除容器、网络、卷、镜像 docker-compose exec yml里面的服务id # 进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash docker-compose ps # 展示当前docker-compose编排过的运行的所有容器 docker-compose top # 展示当前docker-compose编排过的容器进程 docker-compose logs yml里面的服务id # 查看容器输出日志 docker-compose config # 检查配置 docker-compose config -q # 检查配置,有问题才有输出 docker-compose restart # 重启服务 docker-compose start # 启动服务 docker-compose stop # 停止服务 Docker轻量级可视化工具PortainerPortainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。 docker命令安装: docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer 第一次登录需创建admin,访问地址:xxx.xxx.xxx.xxx:9000 Docker重量级容器监控之 CAdvisor+InfluxDB+Granfana通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般够用了。但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能 容器监控3剑客:CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表 使用方法: 1.新建3件套组合的 docker-compose.yml 2.启动docker-compose文件:docker-compose up 3.查看三个服务容器是否启动:docker ps 4.浏览cAdvisor收集服务,http://ip:8080/;浏览influxdb存储服务,http://ip:8083/;浏览grafana展现服务,http://ip:3000 |
CopyRight 2018-2019 实验室设备网 版权所有 |