docker 容器的使用

什么是容器?

容器技术已成为应用程序封装和交付的核心技术

容器技术的核心由一下几个内核技术组成:

  • Cgroups (control groups) 资源管理
    可以限制某个服务的CUP,内存的使用量
  • Namespace 进程隔离
    命名空间的原则----实施隔离
  • SELinux 安全
    基于文件的限制----文件及权限

由于是在物理机上实施隔离,启动一个容器,可以向启动一个进程一样快速。

什么是docker?

  • Docker是完整的一套容器管理系统。
  • Docker提供一组命令,让用户更加方便直接的使用容器技术,而不需要过多关心底层内核技术。

docker与虚拟机的区别

  • 虚拟机是在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用;

  • Docker容器是在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装应用,不需要启动系统。

    容器使用的是共享的后端盘,且创建的容器是基于镜像启动的,镜像采用分层设计,每次创建都使用快照技术,确保底层数据不丢失。

    容器的优点是更加简单高效,缺点是隔离性交虚拟化弱;
    共用linux内核,安全性有缺陷;
    监控容器和容器拍错较困难;

安装docker

注意环境:

  • 1.需要64位操作系统
  • 2.RHEL版本6.5以上,内核3.0以上
  • 3.卸载防火墙

安装docker:

  • 创建虚拟机

  • 设置主机名和IP

  • 配置包含docker的yum源

    yum -y install docker
    systemctl restart/enable docker
    

容器6大命名空间:

  • uts 主机名的命名空间,可以有不同的主机名hostname
  • net 网络命名空间,可以隔离出独立的网络 ifconfig
  • pid 进程命名空间,容器只能看见该容器内的进程 pstree
  • user 用户命名空间,容器内有自己的用户名空间 /etc/passwd
  • ipc 信号向量命名空间,容器里的信号只限制在容器里,但真机的信号可以穿透容器 kill
  • mount 文件命名空间,可以随便删除而真机不受影响 ls

docker命令

  • 镜像常用命令

docker官方会提供公共镜像的仓库(registry)
可以通过命令查找:

docker search 软件包名

每一个镜像文件都包含容器名称标签

  • Docker images
    查看镜像列表 (查看名称,标签,ID)
  • Docker history 镜像名:标签
    查看镜像制作历史(摞了很多层后端盘)
  • Docker inspect 镜像名:标签
    查看镜像底层信息(可以看启动命令)
  • Docker pull 镜像名:标签
    下载镜像
  • Docker push 镜像名:标签
    上传镜像
  • Docker rmi 镜像名称:标签
    删除本地镜像
  • Docker save 镜像名 -o 文件名.tar
    镜像另存为tar文件
  • Docker load -i 文件名.tar
    将文件导入到镜像
  • Docker search 镜像名:标签
    搜索镜像
  • Docker tag 旧镜像名称:标签 新镜像名称:新标签
    修改镜像名称

注意:此处修改名称和标签相当于创建了一个软连接,他们基于相同的后端盘而建立,所以image ID相同。 删除时必须先删除容器才能再删除镜像。

容器常用命令

  • 创建一个新的容器并运行起来

    Docker run -it 镜像名:标签 命令

    可加选项:
    -i 交互式
    -t tty终端 打开一个交互式终端
    -d 放后台运行
    命令通常为:/bin/bash

  • 查看运行中的容器列表

    Docker ps

CONTAINER ID IMAGE COMMAND
229203e6f739 nginx “nginx -g 'daemon off”

生成一个容器ID
可加选项:
-a 显示全部ID
-q 只显示ID

  • 启动/关闭/重启
    Docker start/stop/restart 镜像名:标签

  • 进入容器
    Docker attach|exec 容器ID
    值得注意:
    attach 容器ID
    表示退出后直接关闭容器,(利用ctrl+p+q也可以实现退出继续运行)
    exec -it 容器ID /bin/bash
    退出后放在后台运行,(常选用这一项)

  • 查看容器底层信息
    Docker inspect 容器ID

  • 查看容器进程列表 (相当于在容器外查看容器内的ps结果)
    Docker top 容器ID

  • 删除容器
    Docker rm 容器ID
    注意:正在运行的容器不能删除

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值