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. C语言编程基础

    主流C语言编译器介绍 关于GNU规范的语法扩展 用C语言构建一个可执行程序的流程 宏定义(无参宏定义和带参宏定义),C语言宏定义详解 条件编译,C语言条件编译详解 原码.反码.补码及位操作符,C语言位 ...

  2. 美团Java实习面试经历(拿到Offer)

      美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会.10月23日中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我 ...

  3. 如何下载火山小视频-附火山小视频下载youtube视频下载网站

    火山小视频下载方法: 1. 打开火山小视频APP 2. 点开某个视频,点击右下角分享按钮,在分享弹框中点击复制链接,或者通过分享到微信QQ等获取视频链接 3. 打开在线免费的火山小视频解析下载工具 h ...

  4. 如何下载网页上的视频 并且 flv 格式转化成 MP4

    链接:http://www.jb51.net/softjc/222135.html https://jingyan.baidu.com/article/25648fc162f2899190fd0042 ...

  5. django-redis 使用规范

    django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件. 1,安装 django-redis 最简单的方法就是用 pip ...

  6. BUAA_OO_电梯系列

    电梯作业 第一次作业和第二次作业 由于我第一次作业给傻瓜电梯写了捎带所以第一次第二次作业差不多 电梯运行一个线程Elevator,输入控制一个线程Call 一个物理电梯控制表可以完成移动和进出人功能, ...

  7. js 事件的阶段

    事件有三个阶段: 1.事件捕获阶段 :从外向内 2.事件目标阶段 :最开始选择的那个 3.事件冒泡阶段 : 从里向外   为元素绑定事件 addEventListener("没有on的事件类 ...

  8. ajax beforeSend中无效果

    asnyc:false 与beforesend 同时使用 无效果

  9. 洛谷 P1579 哥德巴赫猜想(升级版)

    嗯... 这或许也算一道数论题吧... 题目链接:https://www.luogu.org/problemnew/show/P1579 这道题的说明好像只会扰乱人的思路....然后就是这道题的细节比 ...

  10. sharding-jdbc springboot配置

    SPRING BOOT配置 注意事项 行表达式标识符可以使用${...}或$->{...},但前者与Spring本身的属性文件占位符冲突,因此在Spring环境中使用行表达式标识符建议使用$-& ...