【Docker】★★★

docker 的网络模式

●host模式:使用 --net=host 指定

容器与宿主机共享网络命名空间、ip和端口

●container模式:使用 --net=container:NAME_or_ID 指定

新建的容器共享已有容器的网络命名空间、ip和端口

●none模式:使用 --net=none 指定

不进行网络配置;无法联网,但安全

●bridge模式:使用 --net=bridge 指定,默认设置,可省略

docker 0作为容器的网关;创建veth来连接两个网络设备

●自定义模式:自定义网络,在指定ip去运行docker

bridge 模式的数据流向

Docker监控的三种方式

docker stats命令

docker stats命令查看主机上所有容器的 CPU、内存、网络 IO、磁盘 IO、PID 资源的使用情况

docker stats

#容器启动后,可以使用docker stats命令查看容器的资源使用状态:

它只能获取本机数据,无法查看历史监控数据,没有可视化展示面板

cAdvisor监控

docker run \

--volume=/:/rootfs:ro \

--volume=/var/run:/var/run:ro \

--volume=/sys:/sys:ro \

--volume=/var/lib/docker/:/var/lib/docker:ro \

--publish=8080:8080 \

--detach=true \

--name=cadvisor \

google/cadvisor:latest
此时,cAdvisor 已经成功启动,我们可以通过访问http://localhost:8080 访问到 cAdvisor 的 Web 界面。

访问 http://localhost:8080/containers/ 地址,在首页可以看到主机的资源使用情况,包含 CPU、内存、文件系统、网络等资源。

如果你想要查看主机上运行的容器资源使用情况,可以访问 http://localhost:8080/docker/,这个页面会列出 Docker 的基本信息和运行的容器情况

Prometheus 监控

cAdvisor 已经内置了对 prometheus 的支持,我们只需要访问http://localhost:8080/metrics即可以获取到标准的 prometheus 监控样本的输出。

修改 prometheus.yml 文件
  • job_name: docker_cadvisor

static_configs:

  • targets: '192.168.67.30:8088'
    重新加载 prometheus配置文件之后我们在web 界面里面能看到状态为 up

无论何种监控方案的实现,底层数据都来源于 Cgroups

如何修改已经运行的容器的端口并生效

优缺点:这个方法的优点是没有副作用,操作简单。

缺点是需要重启整个docker服务,如果在同一个宿主机上运行着多个容器服务的话,就会影响其他容器服务。
systemctl stop docker

停止报错:

原因:Docker默认开启自动唤醒机制,即docker默认在关闭状态下被访问会自动唤醒Docker

解决:停用Docker自动唤醒机制:systemctl stop docker.socket

再去停止docker服务

cd /var/lib/docker/containers/

ls

然后进入你的容器

cd 0ea835b808be54a17b38b7e634de54ca1fb9a24d23e7c5a073b9cdf291a0c396

ls

进入 hostconfig.json 文件

vim hostconfig.json

:/搜索,然后按n就能直接跳过去了

:/PortBindings

8080/tcp对应的是容器内部的8080端口

HostPort对应的是映射到宿主机的端口8080

修改映射端口的话:改HostPort 的端口;(例:改成8090)

修改所映射的宿主机端口的话:改8080/tcp 的端口

保存退出

进入 config.v2.json 文件(好像不用动)

vim config.v2.json

这里面是容器原本的端口号,检查一下对不对(与hostconfig.json文件中容器的端口一致即可),不对的话进行修改

修改完成后启动容器即可

systemctl start docker

docker start 容器名

docker ps -a

浏览器访问

http://192.168.67.30:8090

最快捷的方式,生成yaml文件模板

相关推荐
JuiceFS19 分钟前
如何通过 S3 和 WebDAV 协议访问 JuiceFS?
运维·人工智能·后端
云贝贝贝35 分钟前
OceanBase 生产运维 7 个高频现场:从连不上到误删兜底
运维·ffmpeg·oceanbase
南讯股份Nascent1 小时前
电商全域 CRM 技术拆解:以 KEDAO-CRM 为例看 One ID 与营销自动化的落地实践
运维·自动化
杨云龙UP1 小时前
Linux 下 MySQL 常用登录方式及 Socket 排查指南
linux·运维·数据库·mysql·登录·xtrabackup·主从复制
Elastic 中国社区官方博客2 小时前
从告警到根因仅需 3 分钟:使用 Elastic Agent Builder 实现自动化根因分析
运维·数据库·人工智能·elasticsearch·自动化·可用性测试
月落汀兰2 小时前
运维实战:LVS-NAT/DR 双模式完整落地,含一键启停脚本,线上直接复用
linux·运维·lvs
伞伞悦读2 小时前
【第12期】Windows 开发环境备份与恢复:软件、环境变量、Git、conda 和 Docker 卷完整方案
git·docker·conda
feng_you_ying_li2 小时前
linux之Udpsocket实践
linux·运维·c#
SatanII2 小时前
从零认识云计算|走进云时代,看懂服务器底层基石
运维·服务器·云计算
电商API_180079052472 小时前
自动化获取淘宝评论数据技术分享之API调用示例
大数据·运维·人工智能·自动化·网络爬虫