zoukankan      html  css  js  c++  java
  • docker容器的安装与使用

    docker 容器概念

    1.什么是容器

    容器就是在隔离环境运行的一个进程,如果进程停止,容器就会销毁.隔离的环境拥有自己的系统文件,IP地址,主机名等.

    kvm虚拟机,linux,系统文件

    程序: 代码, 命令

    进程:正在运行的程序

    2. 容器和虚拟化的区别

    linux容器技术,容器虚拟化和kvm虚拟化的区别
    kvm虚拟化: 需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程)

    容器:共用宿主机内核,运行服务,损耗少,启动快,性能高

    容器虚拟化:不需要硬件的支持。不需要模拟硬件,共用宿主机的内核,启动时间秒级(没有开机启动流程)

    总结:
    (1)与宿主机使用同一个内核,性能损耗小;
    (2)不需要指令级模拟;
    (3)容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制;
    (4)避免了准虚拟化和系统调用替换中的复杂性;
    (5)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。

    3.docker 介绍

    Docker是通过内核虚拟化技术(namespaces及cgroups cpu、内存、磁盘io等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。

    kvm解决了硬件和操作系统之间的依赖
    kvm独立的虚拟磁盘,xml配置文件

    docker解决了软件和操作系统环境之间的依赖,能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。
    docker镜像有自己的文件系统。

    docker容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。

    doker安装

    1.安装

    # 删除历史文件
    rm -fr /etc/yum.repos.d/epel.repo
    curl -o /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
    sed -i 's#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
    yum install docker-ce -y

    2.查看docker版本

    命令:docker version

    [root@controller ~]# docker version 
    Client:
     Version:    17.12.0-ce
     API version:    1.35
     Go version:    go1.9.2
     Git commit:    c97c6d6
     Built:    Wed Dec 27 20:10:14 2017
     OS/Arch:    linux/amd64
    
    Server:
     Engine:
      Version:    17.12.0-ce
      API version:    1.35 (minimum version 1.12)
      Go version:    go1.9.2
      Git commit:    c97c6d6
      Built:    Wed Dec 27 20:12:46 2017
      OS/Arch:    linux/amd64
      Experimental:    false

    3.配置docker镜像加速

    vi /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://registry.docker-cn.com"]
    }    

    docker使用

    docker操作

    启动        systemctl start docker
    守护进程重启   sudo systemctl daemon-reload
    重启docker服务   systemctl restart  docker
    重启docker服务  sudo service docker restart
    关闭docker service docker stop
    关闭docker systemctl stop docker
     

    镜像管理

    查看镜像
    docker images docker image ls
    删除镜像
    docker rmi 例子:docker image rm centos:latest
    导出镜像
    docker save 例子:docker image save centos > docker-centos7.4.tar.gz
    导入镜像
    docker load 例子:docker image load -i docker-centos7.4.tar.gz

    容器管理

    启动容器
        docker run image_name
        docker run -it image_name CMD
        
        docker run ==== docker create  + docker start
    
    停止容器
        docker stop CONTAINER_ID
    杀死容器
        docker kill container_name
    查看容器列表
        docker ps
        docker ps –a 
        
    进入容器(目的,调试,排错)
    ***    docker exec  (会分配一个新的终端tty)
            docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
            
        docker exec -it  容器id或容器名字 /bin/bash(/bin/sh)
            
        docker attach(使用同一个终端)
            docker attach [OPTIONS] CONTAINER
            
        nsenter(安装yum install -y util-linux 弃用)
    
    删除容器
        docker rm
    批量删除容器
        docker rm -f `docker ps -a -q`
        
    总结:docker容器内的第一个进程(初始命令)必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态!
  • 相关阅读:
    【历史时刻】从学生到社会独立人——硕士毕业
    Linux 常用命令
    LInux系统下搭建redis集群
    docker 下创建自定义网络,并在运行容器时绑定网络和ip
    docker下安装mysql镜像
    windows下将consul注册为系统服务
    Sql批量替换字段字符,Sql批量替换多字段字符,Sql替换字符
    gerrit安装配置
    Linux安装jdk8及环境变量配置
    iTerm2配置优化
  • 原文地址:https://www.cnblogs.com/gongcheng-/p/10283508.html
Copyright © 2011-2022 走看看