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

最新文章

  1. pcl曲面重建模块-贪婪三角形投影算法实例
  2. 简单排序,C# 直接使用 List。
  3. tracer
  4. PHP redis负载均衡代码
  5. c 函数及指针学习 10
  6. activiti自定义流程之Spring整合activiti-modeler5.16实例(七):任务列表展示
  7. poj 1947 树形dp
  8. JavaScript笔记 第十六章 匿名函数和闭包
  9. tostring的用法
  10. JAVA泛型-擦除
  11. 关于NoClassDefFoundError和ClassNotFoundException异常
  12. Spring + Mybatis 项目实现动态切换数据源
  13. JVM类加载机制---类加载的过程
  14. saltstack一
  15. JDK源码笔记--Object
  16. 互联网推送服务原理:长连接+心跳机制(MQTT协议)
  17. linux内核分析第六周学习笔记
  18. 扩容swap空间
  19. dede调用多级导航的方法
  20. iOS - WKWebView那些坑

热门文章

  1. Windows实用功能
  2. linux上使用tomcat及查看日志
  3. 【ARC077F】SS kmp+打表找规律
  4. Python实现——二元线性回归(最小二乘法)
  5. linux上的那些查找的命令
  6. sticky footer布局
  7. [USACO06DEC]牛的野餐Cow Picnic DFS
  8. rabbitMq使用学习笔记
  9. C++_代码重用3-私有继承
  10. Docker镜像的导出和载入