容器化技术

Docker

  • 三个基本概念:
    • 镜像(Imgae)
    • 容器(Container)
    • 仓库(repository)

docker镜像

  • 镜像采用分层存储,前一层是后一层的的基础,每一层构建完就不再发生改变,后一层的改变只发生在自己这一层。

docker容器

  • 镜像与容器的关系犹如类与实例对象。镜像是静态的定义,容器是镜像运行的实体。容器可以被创建,启动,停止,删除,暂停等。
  • 镜像采用的是分层存储,容器也是如此。每一个容器运行时,以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层称为容器存储层。
  • 容器存储层的生命周期与容器休戚与共,生死相依。

docker仓库

  • docker镜像构建完成,很容易运行在当前宿主机,但是如果需要在其他服务器上运行,我们就需要一个集中的存储,分发镜像的服务,Docker Registry就是这样的服务。
  • 一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个Tag;每个标签对应一个镜像。

Centos安装Docker

  1. 系统要求
    • Docker CE支持64位Centos 7,并且要求内核版本不低于3.10
  2. 卸载旧版本
    • sudo yum remove docker docker-common docker-selinux docker-engine
  3. 使用yum安装
    • sudo yum install docker-ce
  4. 安装必要的依赖
  5. 启动docker ce
    • sudo systemctl enable docker #设置开启启动
    • sudo systemctl start docker #启动docker
  6. 建立docker用户组
    • sudo groupadd docker
    • sudo usermod -aG docker $USER
  7. 测试Docker是否安装正确
    • docker run hello-world #启动一个基于hello-world的镜像容器
  8. 删除docker安装包
    • sudo yum remove docker-ce
  9. 删除docker镜像
    • sudo rm -rf /var/lib/docker
  10. 配置镜像加速
    • vim /etc/docker/daemon.jsom
    • {“registry-mirrors”:[“http://hub-mirror.c.163.com"]}
    • 重启服务生效
      • sudo systemctl daemon-reload
      • sudo systemctl restart docker

docker命令

docker镜像操作

  • 查看命令帮助docker –help
  • 列出镜像
    • docker images==docker image ls #查看已下载的镜像
    • docker system df #查看镜像,容器,数据卷所占用的空间
    • 仓库名,标签均为的镜像成为虚悬镜像
      • docker images ls -f dangling=true #列出虚悬镜像
      • 虚悬镜像可以随意删除 docker image prune
  • 删除本地镜像
    • docker image rm xxx
    • docker image rm $(docker image ls -q ubuntun) #删除所有Ubuntu镜像,如果不写镜像名将删除所有镜像
    • 删除所有在Ubuntu:16.04之前的镜像
    • docker image rm $(docker image ls -q -f before=ubuntu)

docker容器操作

  • 启动容器
    • docker run -it ubuntu:16.04 /bin/bash
    • docker container start xxxxx(id)
    • docker container stop xxxx(id) #暂停
    • docker container restart xxxx(id) 重启
  • 进入容器
    • docker exec -it xxxx(id) /bin/bash
  • 删除容器
    • 删除一个处于终止状态的容器
      • docker container rm ubuntu:16.04
    • 删除所有处于终止状态的容器
      • docker container prune

构建私有仓库

使用Dockerfile定制镜像

  • mkdir mynginx

  • cd mynginx/

  • touch Dockerfile

  • vim Dockerfile

  • FROM nginx

  • RUN echo ‘

    Hello,Docker!

    ‘ /usr/share/nginx/html/index.html

  • FROM指定基础镜像

    • 所谓定制镜像,一定是以一个镜像为基础,在其上进行定制。基础镜像是必须指定的,FROM就是指定基础镜像。
  • RUN执行命令

    • RUN指令是用来执行命令行命令的
  • 构建镜像

    • docker build -t nginx:v3 .

Dockerfile指令详解

  • COPY复制文件
    • 格式
      • copy <源路径>…<目标路径>
      • copy[“<源路径1>”,…”<目标路径>”]
    • 例如:
      • COPY package.json /usr/src/app/
      • COPY hom* /mydir/
      • COPY hom?.txt /mydir/
  • ADD更高级的COPY
    • 源路径可以为 url
  • CMD容器启动命令
-------------The End-------------
0%