精华内容
下载资源
问答
  • 容器怎么用
    千次阅读
    2020-01-08 17:04:40

    依赖包

    net-tools iproute2 bridge-utils git curl

    权限

    需要在 root 下执行

    脚本

    dnet.sh j脚本内容

     

    #like br0 要创建的桥接设备名
    BRNAME=$1
    #like eth0 要矫健的网络接口名
    IFNAME=$2
    #192.168.1.2/24 当前主机IP
    LOCALIP=$3
    #192.168.1.1 当前主机网关
    GWIP=$4
    # 注意如果此脚本出错会导致主机离线,无法进行网络访问,请做好应急预案
    yum install -y net-tools iproute2  bridge-utils git
    git clone https://github.com/jpetazzo/pipework
    cp pipework/pipework /usr/local/bin/
    (ip link add dev "$BRNAME" type bridge > /dev/null 2>&1) || (brctl addbr "$BRNAME")
    ip link set "$BRNAME" up
    ip addr add $LOCALIP dev $BRNAME; \
    ip addr del $LOCALIP dev $IFNAME; \
    brctl addif $BRNAME $IFNAME; \
    ip route del default; \
    ip route add default via $GWIP dev $BRNAME
    
    • 实例

     

    sh dnet.sh br0 eth0 192.168.1.2/24 192.168.1.1
    

    创建一个测试用容器

     

    docker run -itd --name testweb1 nginx
    

    为创建好的容器分配主机同网段IP

     

    pipework br0 testweb1 192.168.1.3/24@192.168.1.1
    

    验证是否成功

    在任意同网段主机内执行都可成功访问

     

    ping 192.168.1.3
    curl http://192.168.1.3


     

    更多相关内容
  • 查看 docker 容器使用的资源

    千次阅读 2022-03-23 15:07:04
    容器使用过程中,如果能及时的掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的。幸运的是 docker 自己就提供了这样的命令:docker stats。 默认输出 docker stats 命令用来显示容器使用的系统...

    在容器的使用过程中,如果能及时的掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的。幸运的是 docker 自己就提供了这样的命令:docker stats。

    默认输出

    docker stats 命令用来显示容器使用的系统资源。不带任何选项执行 docker stats 命令:

    $ docker stats

    默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:
    [CONTAINER]:以短格式显示容器的 ID。
    [CPU %]:CPU 的使用情况。
    [MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
    [MEM %]:以百分比的形式显示内存使用情况。
    [NET I/O]:网络 I/O 数据。
    [BLOCK I/O]:磁盘 I/O 数据。 
    [PIDS]:PID 号。

    只返回当前的状态

    如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态:

    $ docker stats --no-stream

    这样输出的结果就不会变化了,看起来省劲不少。

    只输出指定的容器

    如果我们只想查看个别容器的资源使用情况,可以为 docker stats 命令显式的指定目标容器的名称或者是 ID:

    $ docker stats --no-stream registry 1493

    当有很多的容器在运行时,这样的结果看起来会清爽一些。这里的 registry 和 1493 分别是容器的名称和容器的 ID。注意,多个容器的名称或者是 ID 之间需要用空格进行分割。

    细心的同学可能已经发现了,第一列不再显示默认的容器 ID,而是显示了我们传入的容器名称和 ID。基于此,我们可以通过简单的方式使用容器的名称替代默认输出中的容器 ID:

    $ docker stats $(docker ps --format={{.Names}})

    用容器的名称替代 ID 后输出的结果是不是友好一些?

    格式化输出的结果

    我们在前面搞了点小手段把输出中的容器 ID 替换成了名称。其实 docker stats 命令支持我们通过 --format 选项自定义输出的内容和格式:

    $ docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

    上面的命令中我们只输出了 Name, CPUPerc 和 Memusage 三列。下面是自定义的格式中可以使用的所有占位符:
    .Container    根据用户指定的名称显示容器的名称或 ID。
    .Name           容器名称。
    .ID                 容器 ID。
    .CPUPerc       CPU 使用率。
    .MemUsage  内存使用量。
    .NetIO           网络 I/O。       
    .BlockIO        磁盘 I/O。
    .MemPerc     内存使用率。
    .PIDs             PID 号。
    有了这些信息我们就可以完全按照自己的需求或者是偏好来控制 docker stats 命令输出的内容了。

    除了以 table 格式输出结果,还可以通过 format 选项输出 json 格式的结果:

    $ docker stats --no-stream --format \
        "{\"container\":\"{{ .Container }}\",\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"cpu\":\"{{ .CPUPerc }}\"}"

    总结

    通过 docker stats 命令我们可以看到容器使用系统资源的情况。这为我们进一步的约束容器可用资源或者是调查与资源相关的问题提供了依据。除了 docker 自带的命令,像 glances 等工具也已经支持查看容器使用的资源情况了,有兴趣的朋友可以去了解一下。

    展开全文
  • Docker指定容器使用内存

    千次阅读 2020-12-21 02:03:13
    如果是还没有生成的容器,你可以从指定镜像生成容器时特意加上run -m 256m 或 --memory-swap=512m来限制。-m操作指定的是物理内存,还有虚拟交换分区默认也会生成同样的大小,而--memory-swap的值则等于两者的总和...

    如果是还没有生成的容器,你可以从指定镜像生成容器时特意加上run -m 256m 或 --memory-swap=512m来限制。

    -m操作指定的是物理内存,还有虚拟交换分区默认也会生成同样的大小,而--memory-swap的值则等于两者的总和大小。

    如果是已在运行中的容器,可以通过docker update命令来实现:

    docker update --help可查看到用法,如上图所见。

    -m --memory为设置内存最大值;默认单位为byte,可以使用K、G、M等带单位的字符串。

    --memory-reservation 是弹性控制内存大小,防止损失性能,建议要开。当宿主机资源充足时,允许容器尽量多地使用内存,当检测到内存竞争或者低内存时,强制将容器的内存降低到memory-reservation所指定的内存大小。按照官方说法,不设置此选项时,有可能出现某些容器长时间占用大量内存,导致性能上的损失。

    –-memory-swap:等于内存和swap分区大小的总和,设置为-1时,表示swap分区的大小是无限的。默认单位为byte,可以使用K、G、M等带单位的字符串。如果–memory-swap的设置值小于–-memory的值,则使用默认值,为–-memory-swap值的两倍。

    默认情况下,容器可以使用主机上的所有空闲内存。

    docker会自动为容器在目录/sys/fs/cgroup/memory/docker/中创建相应cgroup配置文件,所以在宿主机内查看容器使用的内存配额可以通过查看相应的配置文件得知:

    好比如上图

    在cgroups的配置文件中,查看到容器的内存大小为256MB (256×1024×1024=268435456B),内存和swap加起来大小为512MB(512x1024x1024=536870912)。

    注:我实际查看线上的容器时没有限制内存和swap的大小,后来自行敲了docker update --memory-swap=512 容器ID 的命令重新再看才变成512MB了。

    例:

    docker stats 容器ID 可查看容器实际使用中的资源配额,以上例子中的容器是做mysql用的,可见挺耗内存的。而wordpress博客的容器使用中的内存才122MB左右。256M也足够了。

    现在怀疑之前容器隔一周两周就自动退出也是因为没做限制倒致宿主机oom将其kill。

    目前free -h观测宿主机没有不停增长使用的内存了,估计就是这个原因所致。

    by:铁乐与猫

    2017年9月

    end

    展开全文
  • docker容器使用GPU方法

    千次阅读 2022-03-25 12:35:15
    为了使docker容器可以使用nvidia-docker,可以有如下几种办法: 1、无nvidia-docker 在早期的时候,没有nvidia-docker,可以通过在容器内再部署一遍nvidia GPU驱动解决。同理,其他设备如果想在容器使用,也可以...

    为了使docker容器可以使用nvidia-docker,可以有如下几种办法:
    1、无nvidia-docker
    在早期的时候,没有nvidia-docker,可以通过在容器内再部署一遍nvidia GPU驱动解决。同理,其他设备如果想在容器里使用,也可以采用在容器里重新安装一遍驱动解决。
    2、nvidia-docker1.0
    nvidia-docker是英伟达公司专门用来为docker容器使用nvidia GPU而设计的,设计方案就是把宿主机的GPU驱动文件映射到容器内部使用,可以通过tensorflow生成GPU驱动文件夹。
    3、nvidia-docker2.0
    nvidia-docker2.0对nvidia-docker1.0进行了很大的优化,不用再映射宿主机GPU驱动了,直接把宿主机的GPU运行时映射到容器即可。启动方式示例:

    nvidia-docker run -d -e NVIDIA_VISIBLE_DEVICES=all --name nvidia_docker_test  nvidia/cuda:10.0-base /bin/sh -c "while true; do echo hello world; sleep 1; done"
    

    4、安装docker-19.03及以上版本
    docker19.03及以上版本,已经内置了nvidia-docker,无需再单独部署nvidia-docker了。安装方式如下:
    安装docker:

    yum install -y yum-utils
    yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
    yum-config-manager --enable docker-ce-nightly
    yum-config-manager --enable docker-ce-test
    yum install docker-ce docker-ce-cli containerd.io
    systemctl start docker
    

    安装nvidia-container-toolkit

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
    
    sudo yum install -y nvidia-container-toolkit
    sudo systemctl restart docker
    

    启动容器:

    docker run --gpus all nvidia/cuda:10.0-base /bin/sh -c "while true; do echo hello world; sleep 1; done"
    

    进入容器并输入nvidia-smi验证。

    展开全文
  • 对于单机多卡的 GPU 服务器,在做容器的 GPU 分配的时候,可以选择通过环境变量 NVIDIA_VISIBLE_DEVICES来指定 GPU 的索引或者 UUID。 因为在容器中看到的 GPU 索引都是从0开始的,如果想找到对应母机上的 GPU 卡,...
  • k8s容器使用内存

    千次阅读 2019-07-12 15:31:01
    需求总是奇葩 k8s容器使用内存,yaml如下 apiVersion: apps/v1beta1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 1 template: metadata: labels: app: nginx spec: cont...
  • 每个步骤作者亲测,也是最全的教程 镜像加速 Windows 10 对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Daemon。在 Registrymirrors 一栏中...
  • c++容器用法

    千次阅读 2021-07-12 11:10:24
    因为vector 容纳着 其他对象,所以它也常被称为容器container。 要想使用 vector,必须包含适当的头文件。需要做如下的声明 #include <vector> using std::vector; 注意:vector是模板而非类型,由vector...
  • 1.创建一个容器,并限制其CPU的使用数量 docker run -itd --cpuset-cpus="1" --name run_alone ubuntu --cpuset-cpus为cpu限制使用数量,在这里指的是逻辑CPU 2.查看刚刚创建好的容器ID docker ps 可以看到,...
  • C++中各个容器使用场景

    千次阅读 2019-05-02 22:20:21
    Vector的使用场景:比如软件历史操作记录的存储,我们经常要查看历史记录,比如上一次的记录,上上次的记录,但却不会去删除记录,因为记录是事实的描述。 deque的使用场景:比如排队购票系统,对排队者的存储可以...
  • nginx 容器

    千次阅读 2022-01-27 16:03:48
    如果需要测试nginx的某功能,可以使用 Nginx 容器。万一哪里改乱了,直接删掉,再重启一个容器就可以了。 一行命令启动nginx容器,一个web服务器就可以使用了。 1、搭建nginx容器 2、加入ssl证书 3、体会docker测试...
  • ISula 容器学习历程

    千次阅读 2021-12-29 14:29:33
    容器引擎会使用指定的容器镜像创建容器读写层,或者使用指定的本地rootfs作为容器的运行环境。创建完成后,会将容器的ID输出到标准输出,后续可以使用isula start 命令启动该容器。新创建的容器状态为inited状态。 ...
  • 自从Docker容器出现以来,容器的网络通信就一直是被关注的焦点,也是生产环境的迫切需求。容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信。   一、端口映射(局域网,外网此...
  • docker容器的简单使用

    千次阅读 2022-04-04 14:57:18
    docker容器简单使用
  • 容器使用过程中,如果能及时的掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的。幸运的是 docker 自己就提供了这样的命令:docker stats。 目录 docker stats (不带任何参数选项) docker ...
  • 运行容器安装好之后,我们就可以来开始Docker之旅了,我们现在的Docker还是一个”裸”Docker,上面没有容器,等一下,什么式容器?所谓容器就是Docker中用来运行应用的,Docker的容器很轻量级,但功能却强悍的很。也...
  • docker容器使用容器外的shell脚本

    千次阅读 2020-12-17 19:10:51
    使用场景:需要使用java来执行某个脚本,对容器外的某个文件进行操作,把这个文件发送到另外一个服务器上面去 为什么写这篇博客呢? 因为在CSDN上看了很多博客,发现大部分都是容器使用容器内的操作,所以当我...
  • 容器技术(Docker)

    千次阅读 2022-04-17 16:38:39
    容器技术的核心就是通过对资源的**限制**和**隔离**把进程运行在一个沙盒中。并且这个沙盒可以被打包成容器镜像(Image),移植到另一台机器上可以直接运行,不需要任何的多余配置。其中docker是容器技术的事实标准...
  • 使用以下docker run命令即可新建并启动一个容器,该命令是最常用的命令,它有很多选项,下面将列举一些常用的选项。 启动一个nginx 1.下载docker的nginx 镜像 docker pull nginx:1.14 2.查看下载的镜像 ...
  • pod容器简介

    千次阅读 2021-08-19 17:21:19
    Pod基础概念: Pod是kubernetes中最小的..."每个pod中一个容器"的模式是最常见的用法,在这种使用方式中,你可以把pod想象成是单个容器的封装,kuberentes管理的是Pod而不是直接管理容器。 2,在一个Pod中同时运行多个容
  • 一、服务器和容器 1. Web服务器 2. Web容器 ① Web容器的组成 ② Web容器的作用 3. Servlet容器 ① Servlet容器的作用 ② Servlet容器的工作过程 ③ Servlet ④ Servlet的工作过程 ⑤ Servlet变化过程 4. Spring容器...
  • 可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器里所对应的目录。创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建...
  • docker查看容器的网络ip

    千次阅读 2019-10-04 16:41:20
    方法一 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ...显示所有容器IP地址: docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddres...
  • 场景 笔者在宿主机上的用户,是一个具有“宿主机上sudo权限”的非root用户。现在在宿主机有资源文件夹CPP,里边有各种库。但是有的库需要glibc 2.31才能...docker run创建容器时,在容器中默认使用root用户。或者可以通
  • docker 常用操作容器命令

    万次阅读 2021-02-28 17:30:33
    docker 常用操作容器命令
  • 但是我们有一种常见的场景,就是a容器,需要通过宿主机的端口映射,调用b容器的服务,这里如果在a容器内部配置localhost/127.0.0.1/0.0.0.0:port都是不会起作用的,因为容器容器之间的ip是隔离的,无法互相通过...
  • 【云原生】三、详细易懂的Docker 容器管理

    千次阅读 多人点赞 2022-06-08 20:43:27
    ;容器是 Docker 的一个基本概念,每个容器中都运行一个应用并为该应用提供完整的运行环境。 本文将详细学习 Docker 容器的创建,运行管理操作。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,865,860
精华内容 746,344
关键字:

容器怎么用

友情链接: Arm_UDP.rar