1、namespace、cgroup在容器中的作用

  • namespace是linux系统底层的概念,在内核层实现,即有一些不同类型的命名空间被部署在核内各个docker容器运行在同一个docker主进程并且共用同一个宿主机系统的内核,各个docker容器运行在宿主机的用户空间,每个容器都要有类似于虚拟机一样的相互隔离的运行空间,但是容器技术是在一个进程内实现运行指定服务的运行环境,并且还可以保护宿主机内核不受其他进程的干扰和影响,比如文件系统空间、网络空间、进程空间等。
    namespace六种隔离类型
    MNT Namespace 提供瓷片挂载点和文件系统的隔离能力
    IPC Namespace提供进程间通信的隔离能力
    UTS Namespace 提供主机名隔离能力
    PID Namespace 提供进程隔离能力
    Net Namespace提供网络隔离能力
    User Namespace 提供用户隔离能力

  • cgroup全称Linux control groups
    Linux Cgroups的全称是Linux Control Groups
    主要作用限制一个进程组能够使用的资源上限, 包括CPU、内存、磁盘、网络带宽等
    能够对进程进行优先级设置,以及进程挂起和恢复等操作

2、编排工具及依赖技术总结

容器编排通常包括容器管理、调度、集群定义和服务发现等功能,编排工具有:

  • Docker sware: docker 开发的容器编排引擎 kubernetes:

  • google领导开发的容器编排引擎,内部项目为borg,而且同时支持docker和CoreOS

  • mesos+marathon:
    通用的集群组员调度平台,mesos(资源分配)与marathon(容器编排平台)一起提供容器编排引擎功能。

    Docker容器的依赖技术有容器网络、服务发现、容器监控、数据管理、日志收集。

3、基于dockerfile制作一个nginx镜像

1、  # 创建环境目录mkdir dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,redhat}} -pvcd dockerfile/web/nginx/  && mkdir  all-in-one
2 、# 基于centos环境构建docker pull centos
3、 # 临时启动一个容器用于获取配置文件docker run -it docker.io/centos  /bin/bashdocker cp 3bc5baed6234:/apps/nginx/conf/nginx.conf  .
4、构建系统层,安装必备的基础软件包[root@harbor-server2 all-in-one]# pwd
/opt/dockerfile/web/nginx/all-in-one
[root@harbor-server2 all-in-one]# vim Dockerfile
FROM  centos:7.8.2003
MAINTAINER "Linfei.Gao 1075983420@qq.com"
RUN yum install -y epel-release  &&  yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
5、准备源码nginx包与配置文件
[root@gaolinfei all-in-one]# wget https://nginx.org/download/nginx-1.16.1.tar.gz
Dockerfile中追加
COPY nginx-1.16.1.tar.gz /usr/local/src
6、编译执行NGINX,Dockerfile中追加
RUN cd /usr/local/src/nginx-1.16.1 && ./configure --prefix=/apps/nginx  --with-http_sub_module && make && make install
7、自定义修改nginx配置,需要创建用户
RUN useradd nginx -u 2022
ADD nginx.conf  /apps/nginx/conf/nginx.conf
ADD code.tar.gz  /data/nginx/html
8、配置nginx自启动,Dockerfile中追加
EXPOSE 80 443
CMD ["/apps/nginx/sbin/run_nginx.sh"]
9、准备nginx 启动脚本
[root@harbor-server2 all-in-one]# cat run_nginx.sh
#!/bin/bash
echo "nginx starting....."
/apps/nginx/sbin/nginx

使用脚本方式构建镜像

[root@harbor-server2 all-in-one]# cat build-command.sh
#!/bin/bash
docker build -t harbor.gaolinfei.com/y73/centos-nginx:1.22.1 .
docker push harbor.gaolinfei.com/y73/centos-nginx:1.22.1

4、镜像构建总结

完整Dockerfile文件

root@gaolinfei all-in-one]# cat Dockerfile
#My first   Dockerfile
# base image  for  Y73  nginx
FROM  centos:7.8.2003MAINTAINER "Linfei.Gao 1075983420@qq.com"RUN yum install -y epel-release  &&  yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop#COPY nginx-1.16.1.tar.gz /usr/local/src
ADD  nginx-1.22.1.tar.gz  /usr/local/srcRUN cd /usr/local/src/nginx-1.22.1 && ./configure --prefix=/apps/nginx  --with-http_sub_module && make && make installRUN useradd mynginx -u 2022ADD nginx.conf  /apps/nginx/conf/nginx.confADD code.tar.gz  /data/nginx/htmlEXPOSE 80 443ADD run_nginx.sh  /apps/nginx/sbin/run_nginx.shRUN chmod a+x   /apps/nginx/sbin/run_nginx.shCMD ["/apps/nginx/sbin/run_nginx.sh"]```powershell

初学docker第一周相关推荐

  1. 项目使用ts辅助_我如何建立辅助项目并在第一周获得31,000名用户

    项目使用ts辅助 by Jurn W 由Jurn W 我如何建立辅助项目并在第一周获得31,000名用户 (How I Built my Side Project and Got 31,000 Use ...

  2. 20155303 2016-2017-2 《Java程序设计》第一周学习总结

    20155303 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 浏览教材,根据自己的理解每章提出一个问题 Chapter1 Java平台概论:MyProgr ...

  3. 2022年程序员开工第一周,应该收藏这样一份书单

    新年新气象,开工第一周,作为程序员的你有哪些新年规划?如果还没准备好,不如小编来一份开工书单,开始你的学习旅程吧! 开工后,有哪些新书最受欢迎? 1.计算之魂 (<数学之美><浪潮之 ...

  4. Java入门日记1 | 第一周总结

    一个不精致的开头: 准确来说今天是我初学Java的第一天.课上老师指导我们怎么下载--怎么安装--怎么配置等等,但是关于Java语法那是密不透风,生怕走漏风声的一个大动作.这种情况下还要做题,言下之意 ...

  5. Python语言程序设计 第一周习题

    Python语言程序设计 第一周习题 习题1 获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮ ...

  6. vulhub打靶第一周

    title: vulhub打靶第一周 description: vulhub打靶第一周 难度:middle date: 2023-06-01 categories: [渗透,靶机] 图片链接有问题访问 ...

  7. 入职新公司第一周的感受

    0.刚参加工作的实习生 1.经过n轮面试,终于进入了大厂 2.入职新公司第一周的感受 3.勤劳的我被工作干扰师打断了 4.摸鱼大王 5.产品经理低头是在想需求吗? 6.好家伙我还以为是作秀,原来是现实 ...

  8. 第一周Access课总结

    第一周Access课总结 1:这节课学到了什么? 这节课重点学了数据库是用来干什么 做什么的  老师怕我们理解不了 用了很长时间向我们举了很多的例子 让我们终于知道了数据库是用来干嘛的了 顾名思义 数 ...

  9. 20162313苑洪铭 第一周作业

    20162313苑洪铭 20016-2017-2 <程序设计与数据结构>第1周学习总结 教材学习内容总结 本周观看教材绪论 主要在教我建立一个简单的java程序 内容是林肯的名言 虽然看起 ...

最新文章

  1. 博达交换机镜像端口配置_“量身定制”的轨道交通工业以太网交换机,RT FORUM2019春季大会智慧解决方案12...
  2. 世界银行拨款2293万美元支持印度并网屋顶太阳能
  3. CNN-3: VGGNet 卷积神经网络模型
  4. xcode工程命令行生成ipa安装包
  5. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...
  6. Linux的铜墙铁壁:防火墙之iptables
  7. 一个可能是世界上最全的 API 接口集合库开源项目
  8. Wannafly 每日一题 2016-12-26 KAOS 字典树
  9. 油猴脚本 | 油猴脚本下载 | 油猴脚本大全
  10. 在C++Builder中使用OLE出现“类worksheet的paste方法无效”错误的一种解决方法
  11. linux dosbox使用教程,dosbox安装及汇编教程 dosbox的常用快捷键
  12. aamp;m大学计算机科学,名校介绍丨美国 德克萨斯AM大学 Texas AM University
  13. Inrie(洪晓军)
  14. 萤石云回放时服务器无响应,萤石云手机回放看不了
  15. Ubuntu解决RTNETLINK answers: File exists
  16. android js下载地址,js点击下载跳转iOS或安卓
  17. 最火10款经典游戏项目合集 让你轻松拿下
  18. 货郎问题与计算复杂性
  19. Python UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xbb in position 0: invalid start byte
  20. bp神经网络分类器c语言,基于BP神经网络的隐写分析分类器设计

热门文章

  1. NC自由报表节点和功能节点查询
  2. 基于JEECG-BOOT的list页面的地址栏参数传递
  3. babel进阶用法之处理json文件
  4. Jenkins Email Extension 插件
  5. blender中如何将窗口移动到另一块屏幕上,即新开一个窗口,作用到分屏上
  6. 微博APP中H5 视频播放完毕退出
  7. win10 操作系统,开机后分辨率的百分比会改变
  8. lcm模块 oracle,LCM模组结构 工艺 材料 设备 全解析(模组人员必学)
  9. 向日葵远程控制端 for Mac
  10. 【MySQL】内容汇总