容器的最初设计目标为了隔离计算机中的各类资源。降低软件开发、测试阶段的风险,或者充当密罐,吸引黑客的攻击,以便监视黑客的行为。

容器的技术

namespace

最初是chroot代表文件隔离技术,但是主机名 网络 系统进程 用户都无法隔离

02年linux内核引入了由内核直接提供的,全局资源封装全新隔离机制(namespace)解决隔离问题

09支持了UTS IPC PID NETWORK MOUNT 等多个名称空间,但是还差资源的配置

资源配额(Cgroups)

linux系统用Cgroups控制群组实现,也是由linux内核提,用于隔离分配资源量

包括CPU占用时间、内存大小、磁盘I/O速度等

13年开源docker诞生

15年定义了OCI开放容器交互标准

运行时标准(Runtim-SPEC)

容器镜像标准(Imag-SPEC)

镜像分发标准(Distribution-SPEC)

总结:通过namespace与Cgroups进行完美隔离限制

docker安装

[root@docker-0001 ~]# echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
[root@docker-0001 ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@docker-0001 ~]# yum install -y docker-ce
[root@docker-0001 ~]# systemctl enable --now docker
[root@docker-0001 ~]# docker version
Client: Docker Engine - CommunityVersion:           20.10.10... ...
Server: Docker Engine - CommunityEngine:Version:          20.10.10

配置镜像加速

[root@docker-0001 ~]# vim /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://hub-mirror.c.163.com"],"insecure-registries":[]
}
[root@docker-0001 ~]# systemctl restart docker
[root@docker-0001 ~]# docker info
... ...Insecure Registries:127.0.0.0/8Registry Mirrors:https://hub-mirror.c.163.com/Live Restore Enabled: false

镜像概述

镜像是启动容器的核心

镜像采用分层设计

使用ROW技术

容器运行在读写层

镜像始终都是只读的

查看镜像分层历史docker history 镜像名称:标签

镜像管理&容器管理

镜像管理命令 说明
docker images 查看本机镜像
docker search 镜像名称 从官方仓库查找镜像
docker pull 镜像名称:标签 下载镜像
docker push 镜像名称:标签 上传镜像
docker save 镜像名称:标签 -o 备份镜像名称.tar 备份镜像为tar包
docker load -i 备份镜像名称 导入备份的镜像文件
docker rmi 镜像名称:标签 删除镜像(必须先删除该镜像启动的所有容器)
docker history 镜像名称:标签 查看镜像的制作历史
docker inspect 镜像名称:标签 查看镜像的详细信息
docker tag 镜像名称:标签 新的镜像名称:新的标签 创建新的镜像名称和标签

容器管理命令

容器管理命令 说明
docker run -it(d) 镜像名称:标签 启动命令 创建启动并进入一个容器
docker ps 查看容器 -a 所有容器,包含未启动的,-q 只显示id
docker rm 容器ID -f 强制删除
docker start|stop|restart 容器id 启动、停止、重启容器
docker exec -it 容器id 启动命令 在容器内执行命令
docker cp 本机文件路径 容器id:容器内绝对路径 把本机文件拷贝到容器内(上传)
docker cp 容器id:容器内路径 本机文件路径 把容器内文件拷贝到本机(下载)
docker inspect 容器ID 查看容器的详细信息
docker logs 容器ID 查看容器日志
docker info 查看容器的配置信息
docker version 查看服务器与客户端版本

简单镜像制作(commit)

docker commit mycentos mycentos:latest

就是把一些包装好,重新打包成为新的镜像

你应该会用的功能

docker rm -f $(docker ps -aq)
export LANG=C

docker run -it --rm xxx:xxx 分配一个交互式终端,容器结束时删除  ctrl+p+q 放入后台

容器内执行命令(exec)

docker exec -it 容器 夯住的命令

分层镜像最多127层

删除要从顶层开始删 否则你将删除的是一个tag 当然这样也可以找回

容器内部署应用

[root@docker-0002 ~]# docker rm -f $(docker ps -aq)
[root@docker-0002 ~]# docker run -it --rm mycentos:latest
#-----------------------------------------------------------
[root@a7f9d0c3e3e2 /]# yum install -y httpd php
[root@a7f9d0c3e3e2 /]# echo "Hello World ." >/var/www/html/index.html
[root@a7f9d0c3e3e2 /]# cat /etc/sysconfig/httpd
[root@a7f9d0c3e3e2 /]# export LANG=C
[root@a7f9d0c3e3e2 /]# cat /usr/lib/systemd/system/httpd.service
[root@a7f9d0c3e3e2 /]# /usr/sbin/httpd -DFOREGROUND
# 启动服务以后 ctrl-p + ctrl-q 退出
#-----------------------------------------------------------
[root@docker-0002 ~]# curl http://172.17.0.2/
Hello world

容器(docker)相关推荐

  1. 外部访问docker容器(docker run -p/-P 指令) docker run -d -p 5000:5000 {hostPort:containerPort(映射所有接口地}

    https://www.cnblogs.com/williamjie/p/9915019.html (2)-p(小写)则可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器.支持的格式有 ...

  2. centos7 docker删除端口映射_容器Docker详解

    概述 基本概念Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源.Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Li ...

  3. 大型网站技术学习-3. 容器Docker与kubernetes

    大型网站技术基石篇-容器Docker与kubernetes Docker和Kubernetes的关系就如Xen与OpenStack. Docker是一种容器技术,和Hypervisor(KVM/Xen ...

  4. java部署容器_Linux容器——Docker(二)之 JavaWeb部署

    1.拉取镜像 a.拉取Mysql镜像 #拉取Mysql镜像 $ docker pull mysql:8.0.18 b.拉取Tomcat镜像 #拉取Tomcat镜像 $ docker pull tomc ...

  5. 容器-Docker《三》容器管理

    容器-Docker<三>容器管理 下载镜像只是相当于将软件下载下来安装好,但是并不代表把它运行起来,类似于root@ubuntu2204:~# apt install nginx = do ...

  6. docker 开机自启动容器docker运行自启动

    1.docker开机自启动 systemctl enable docker 2.容器docker 运行时自启动 docker 容器启动策略 no 默认策略,在容器退出时不重启容器 on-failure ...

  7. 删除容器docker rm和强制删除容器docker rm -f

    显示所有容器 docker ps -a删除容器,运行中的容器不行 docker rm 容器id强制删除容器,运行中的容器也是可以删除的 docker rm -f 容器id docker rm 删除运行 ...

  8. 3.docker创建容器 (docker容器命令)

    文章目录 1.[nginx 容器拉取](https://blog.csdn.net/weixin_43627706/article/details/121990040) 2.运行创建一个nginx容器 ...

  9. Docker容器---Docker简介与原理

    1. 概述 1.1 容器概念 docker是一个容器,所谓容器,就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁.隔离的环境拥有自己的系统文件,ip地址,主机名等,kvm虚拟机,linux, ...

  10. 容器Docker(一)

    容器介绍 容器其实是一种沙盒技术.沙盒就是能够像一个集装箱一样,把你的应用"装"起来的技术.这样,应用与应用之间,就因为有了边界而不至于相互干扰:而被装进集装箱的应用,也可以被方便 ...

最新文章

  1. perl Encode模块的使用
  2. 左耳朵耗子:程序员如何把控自己的职业?
  3. AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks论文解读
  4. MySQL数据库备份之主从同步配置
  5. 怎么样做一个漂亮女人
  6. nginx python cgi_Python的CGIHTTPServer交互实现详解
  7. python中urlLib的使用
  8. 雷军卸任小米电子董事长!常程等人也退出该公司 网友:为造车放弃家业?
  9. Hololens开发入门篇-郑洪智-专题视频课程
  10. SpringCloud工作笔记066---断路器(Curcuit Breaker)模式
  11. azure上传代码_深入了解Azure Data Studio:更多代码和更少GUI
  12. 最简单的视频编码器:编译(libx264,libx265,libvpx)
  13. 大端模式和小端模式的再理解
  14. 2015 NI 校招笔试机试面试
  15. 新零售引发全球关注 阿里巴巴获零售业年度全球最大奖
  16. 你不能访问此共享文件夹,因为你组织的安全策略的解决办法
  17. gif动态图如何制作?
  18. [附源码]计算机毕业设计Python的连锁药店销售管理系统(程序+源码+LW文档)
  19. 什么是「中华田园敏捷开发」,人才
  20. 首届阿里巴巴研发效能嘉年华

热门文章

  1. 素问之二四气调神大论篇
  2. 一部值得成年人反复观看的剧
  3. CHIL-ORACLE-创建表
  4. Ubuntu的安装以及重新安装的注意点(保存以前的用户数据)
  5. linux smit工具,Linux安全基础 SMIT入门
  6. dfs与bsf问题合集
  7. 视频播放器是如何播放音视频的?
  8. 幽默搞笑:我赶紧把手抽开,这死胖子暗恋我十年,死心不改啊
  9. 华清远见创客学院_有远见的未来,并通过数据改变学院
  10. 华三路由交换配置命令_h3c路由器配置命令都有哪些 h3c路由器配置命令大全【详解】...