Docker进阶

Docker容器命名与重命名

命名

  • docker run -it -p 80:80 --name containerName img:tag /bin/bash

重命名

  • docker rename old new

指定Hostname

  • docker run -h hostname -it -p 80:80 --name containerName img:tag /bin/bash

Docker容器CPU资源

  • docker run -it --cpu-shares 1024 docker.io/img:tag /bin/bash # --cpu-share指定在主机资源紧缺时该容器分配到的cpu的份额权重
  • 在容器中使用cat /sys/fs/cgroup/cpu/cpu.shares查看

设置容器CPU亲和力

  • docker run -it --name container1 docker.io/img:tag --cpuset-cpus 0-1 /bin/bash # --cpuset-cpus只在多核上有效

磁盘映射

  • docker run -it --name container1 --device /dev/sda:/dev/sda -p 80:80 docker.io/name:tag /bin/bash # 使用--device映射磁盘

目录(卷)映射

  • docker run -it --name container -v /src:/dst -p 80:80 --device /dev/sda:/dev/sda docker.io/name:tag /bin/bash # 使用-v映射目录

容器特权

  • 默认情况下, 容器是在没有特权模式下运行, 在该模式下虽然我们进入到bash中看到为root用户, 但是其实它是一个普通用户, 没有特权, 不能使用mount等命令
  • docker run -it --name container1 --cpuset-cpu 0,1 --cpu-shares 512 --privileged=true docker.io/name:tag /bin/bash

Docker的网络

Docker的网络模式

  1. host模式: 使用--net=host指定
  2. container模式: 使用--net=container=NAME|ID指定
  3. none模式: 使用--net=none指定
  4. bridge模式: 使用--net=bridge指定, 为默认, 当容器启动之后会自动分配动态ip; 在容器中使用pipwork工具为容器临时分配固定ip地址, 为静态ip地址

为容器配置静态ip

  1. 配置桥接网络

    • yum install bridge-utils -y
    • cd /etc/sysconfig/network-scripts
    • cp ifconfig-ens33 ifconfig-ens33.bak
    • 编辑ifconfig-ens33
      • 去掉与IPV4有关的条目: IPADDR, NETMASK, GATEWAY, DNS, 为什么? -> 因为创建了br0设备, 计算机就是通过br0通信的, 需要将ens33上的IPV4地址放到br0上, 接下来只要在ens33中告诉计算机ens33的被添加到br0上即可
      • 添加BRIDGE="br0"告诉计算机(bridge-utils工具)ens33被添加到了br0上, IPV4的地址到br0上找即可
    • 创建ifconfig-br0

    DEVICE="br0"
    NM_CONTROLLED="yes"
    ONBOOT="yes"
    TYPE="Bridge"
    BOOTPROTO=none
    IPADDR=ens33的ip
    NETMASK=ens33的掩码
    GATEWAY=ens33的网关
    DNS1=ens33指定的DNS
    • 重启网络服务: service network restart, 不要使用systemctl restart network, 可能会有问题, 以后凡是与network有关的使用service
    • ifconfig查看是否新添加了br0接口, 发现ens33的ip跑到了br0接口上, br0与ens33的mac地址是一样的, 因为br0底层还是走ens33物理网卡
  2. 启动容器, 其中--net=none, docker run -itd --name container1 docker.io/name:tag /bin/bash --net=none

  3. 使用pipework命令配置容器ip

    • pipework br0 containerId 192.168.1.10/24@192.168.1.1

Docker进阶的更多相关文章

  1. 【云计算】Docker云平台—Docker进阶

    Docker云平台系列共三讲,此为第二讲:Docker进阶 参考资料: 五个Docker监控工具的对比:http://www.open-open.com/lib/view/open1433897177 ...

  2. Docker:四、Docker进阶 Windows Docker IIS 部署

    前面的三篇docker 文档大家看的肯定不过瘾,自己可能也已经上手一试了...不知道有没有发现问题... 哈哈... 我来说说我遇到的问题哦 一.windows docker 镜像越来越大 默认的do ...

  3. Ubuntu Server下docker实战 02: docker进阶配置

    在上一篇文章里<Ubuntu Server下docker实战 01: 安装docker>,我们已经把docker安装起来了,并运行了一个hello-world 这一篇,我们继续讲进阶配置. ...

  4. docker进阶之路-基础篇 | 一:环境搭建

    转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061747.html 一.准备工作 查看内核 Docker 要求 CentOS ...

  5. docker进阶之路-基础篇 | 二:portainer安装与基本使用

    转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061755.html ​简介 Portainer 是轻量级,跨平台,开源的管理D ...

  6. 斌哥的 Docker 进阶指南—监控方案的实现

    过去的一年中,关于 Docker 的话题从未断过,而如今,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减.另一方面,大家的注意力也渐 ...

  7. 斌哥的 Docker 进阶指南

    过去的一年中,关于 Docker 的话题从未断过,而如今,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减.另一方面,大家的注意力也渐 ...

  8. Docker进阶使用1

    容器间共享文件 Docker 的容器和外部环境是相对隔离的,并且容器是一次性的,运行结束后并不会有任何的持久化的文件或者数据.所以当我们需要做应用数据的持久化,或者保留应用的日志文件时,我们需要用到 ...

  9. docker进阶-搭建私有企业级镜像仓库Harbor

    为什么要搭建私有镜像仓库   对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像.既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像.我们 ...

随机推荐

  1. .NET中的程序集

    参考:http://blog.sina.com.cn/s/blog_7ade159d0102wmg9.html 程序集(Assembly,装配件,.NET程序集) 程序集是应用程序的部署单元,.NET ...

  2. Android学习笔记 ImageSwitcher图片切换组件的使用

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  3. 神经网络中的感受野(Receptive Field)

    在机器视觉领域的深度神经网络中有一个概念叫做感受野,用来表示网络内部的不同位置的神经元对原图像的感受范围的大小.神经元之所以无法对原始图像的所有信息进行感知,是因为在这些网络结构中普遍使用卷积层和po ...

  4. web静态资源的访问(笔记)

    1.在web-inf外的静态资源访问: 三种方式: 2.访问web-inf内的静态资源: 使用请求转发的方式访问web-inf静态资源(重定向相当于在浏览器输入,无法访问) 参考:https://bl ...

  5. python3使用newspaper快速抓取任何新闻文章正文

    newspaper用于爬取各式各样的新闻网站 1,安装newspaper pip install newspaper3k 2,直接上代码 from newspaper import Article u ...

  6. 通过html()的方法获取文本内容, form表单组件显示的值与获取到的值不一致的问题

    我在通过 html()获取对应节点的内容,发现一个问题,获取到的 form表单组件的内容值是初始加载的值,而不是经过用户修改后的值.例如页面加载时组件<input type="text ...

  7. there is already 'RtController' bean method 项目报错

    今天开发项目时候发现项目报错启动的时候,也没有具体指的是哪一行报错,其实很简单的知道,首先看下报错信息: there is already 'RtController' bean method pub ...

  8. python之常用的数据类型

    1. 变量的定义以及声明 在学习变量之前,咱们需要知道变量的命名规则: ① 变量必须由数字字母下划线构成,如a_1 ② 变量名不能以数字开头,如1a ③ 需要遵循驼峰命名法 给变量赋值通常采用“=”, ...

  9. C++_标准模板库STL概念介绍4-算法

    STL包含很多处理容器的非成员函数: sort() copy() find() random_shuffle() set_union() set_intersection() set_differen ...

  10. 【算法笔记】B1011 A+B 和 C

    1011 A+B 和 C (15 分) 给定区间 [−2​31​​,2​31​​] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤10 ...