【Docker】★★★

server/2024/12/23 7:29:40/

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文件模板


http://www.ppmy.cn/server/35570.html

相关文章

Vue09 五一前 组件通信

store组合式写法 count.ts组合式写法 import { reactive } from vue export const useLoveTalkStore defineStore(talk, () > {const talkList reactive(JSON.parse(localStorage.getItem(talkList) as string) || [])//getATalk函数相当于actionasync function getATal…

GreptimeDB 助力国家电网数字换流站打造稳定高效的时序数据底座

电网体系作为现代社会运行的支柱之一,为各行各业、千家万户提供了电能的基本支持。从家庭到企业,医院到学校,交通到通讯,电力电网的应用贯穿始终。近年来,特高压换流站成为国家电网的重点建设工程,“十四五…

【Linux】进程通信----管道通信

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:理解进程通信----管道通信 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! > 专栏选自:Lin…

深度神经网络中的不确定性研究综述

A.单一确定性方法 对于确定性神经网络,参数是确定的,每次向前传递的重复都会产生相同的结果。对于不确定性量化的单一确定性网络方法,我们总结了在确定性网络中基于单一正向传递计算预测y *的不确定性的所有方法。在文献中,可以找…

初识JDBC

1、JDBC是什么? Java DataBase Connectivity(Java语言连接数据库) 2、JDBC的本质是什么? JDBC是SUN公司制定的一套接口(interface) java.sql.*;(这个包下有很多接口) 接口都有调用者和实现者。 面向接口调用、面向接口写实现类,这都属于…

docker-compose docker的批量管理工具

安装 apt-get install docker-compose -y # 查看版本 docker-compose -v设置容器自启动:–restartalways docker run -it -d --restartalways nginx:1.16docker-compose.yml配置文件,该文件的缩进必须是三个空格,使用的是yaml语法。 versi…

工厂模式+策略模式完成多种登录模式的实现

前提 (简单工厂不属于设计模式,而是一种编程思想【抽象一层出来】)工厂方法模式、抽象工厂模式 以上都是为了解耦,如果考虑多个纬度(如需要同时考虑多种电器,多种品牌)则优先考虑抽象工厂。 …

Python tutorial 2.7.13第四章(深入 Python 流程控制)

4. 深入 Python 流程控制 除了前面介绍的 while 语句,Python 还从其它语言借鉴了一些流程控制功能,并有所改变。 4.1. if 语句 也许最有名的是 if 语句。例如: >>> x int(raw_input("Please enter an integer: ")) Please enter…