文章目录
docker虚悬镜像
仓库名、标签都是<none>
的镜像,俗称虚悬镜像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,要解决这个问题就可以采取自定义网络模式:
自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能通)。
Docker-compose容器编排
Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用,实现对Docker容器集群的快速编排。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。
安装步骤:
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 -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轻量级可视化工具Portainer
Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。
docker命令安装:
第一次登录需创建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