docker-环境安装-基础命令

Docker概述

  • docker是一种linux容器技术,一种高效,敏捷和轻量级的容器解决方案
  • 支持多种主流平台,和本地部署,docker是基于GO语言实现的开源项目,
  • 遵循 apache2.0开源会议,全部源码均在 https://github.com/docker 上进行相关维护。

Docker的体系结构

  • 使用C/S架构

Docker内部核心概念

  • 镜像 docker images
  • 镜像是docker容器运行时的只读模板,镜像可以用来创建docker容器
  • 镜像是只读的,容器在启动的时候,创建一层可写作最上层
  • 仓库 docker repository
  • 类似于代码仓库 它是docker集中存放镜像文件的地方
  • 容器 docker contains 利用容器运行 一个docker容器包含了所有的某个应用运行所需要的环境

Docker特性

  • 文件系统的隔离:每个进程容器运行在一个完全独立的根文件系统里
  • 资源隔离:系统资源像 C 和内存等可以分配到不同的容器中,使用 Cegrop对系统资源进行分配隔离
  • 网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和ip地址
  • 日志记录 Docker将会收集和记录每个进程容器的标准流
  • 变更管理:容器文件系统可以提交到新的映像中,并可以重复使用以创建更多的容器,不需要使用模板或手动配置
  • 交互式shell Docker 可以分配一个虚拟终端并关联到任何容器的标准输入上

Docker环境的安装

系统 centos7.4以上
阿里云地址 https://mirrors.aliyun.com/docker-ce/
官网 https://docs.docker.com/
docker镜像地址 https://hub.docker.com/
  • 配置yum源
  • yum源 是从阿里云镜像地址找出
    vim /etc/yum.repos.d/ ali-docker.repo
    [docker]
    name = aliyun-docker
    baseurl = https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/ 
    enabled = 1
    gpgcheck = 1
    gpgkey = https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
    
    https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/ # 阿里的docker所有软件包
    https://mirrors.aliyun.com/docker-ce/linux/centos/gpg # 秘钥
    
  • 安装docker
    yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装依赖
    yum -y install docker-ce # yum安装 
    systemctl start docker # 启动 
    
    docker -version # 查看docker当前版本
    docker version # 查看docker详细的版本信息等

镜像加速

  • 一种 阿里云加速 https://cr.console.aliyun.com/cn-qingdao/instances/mirrors 镜像加速地址

  • 一种 道客加速 https://www.daocloud.io/ 镜像加速地址

  • 道云加速

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io # 直接复制到linux运行
    
    systemctl restart docker # 重启docker
    
    docker info 查看信息 在这里可以查看加速器是否更换
  • 以下是加速成功截图

  • 阿里云加速

    vim /etc/sysctl.conf
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    # 添加这两个,docker info 时error就会没有(可以不用写,如果有error就写上)
    
     vim /etc/docker/daemon.json
     {
      "registry-mirrors": ["https://p5ihdfyr.mirror.aliyuncs.com"]
     }
     # 将里面的地址换成阿里云的镜像地址
    
     systemctl daemon-reload
     systemctl restart docker # 重启docker
     docker info # 查看

  • 注意,道云现在一般不用这个了,用阿里云加速就可以

docker基础命令

  • 搜索镜像

docker search 镜像名

  • 列举自制镜像的起名方式

  • lmk/centos-nginx-apache-ip

  • 作者/镜像-镜像中安装的软件-软件-软件

  • 下载镜像

docker pull 镜像名

  • 查看镜像

docker images

  • 删除镜像

docker rmi 镜像id\镜像名

  • 导出镜像

docker save -o 导出镜像名.tar 要导出的镜像

  • 导入镜像

docker load < 镜像tar包

  • 上传镜像

docker push 镜像名称

  • 这里需要连接谷歌,图片暂时没有
  • 查看docker基础信息

docker info

  • 查看正在运行的容器

docker ps
docker ps -a 查看所有运行过的容器

  • 运行容器内的命令

docker run centos 需要运行的命令

  • 从后台运行容器

docker run -itd 容器名称 /bin/bash

  • it 打开交互页面

  • d 后台运行

  • 后台运行后会显示一个长的容器编号,容器的id编号就是长容器编号的前12位

  • 启动容器\关闭容器

    docker start 容器名
    docker stop 容器名
    docker restart 容器名          重启容器
    docker kill 容器名             快速关闭容器
  • 挂起容器

    docker pause 容器名           挂起
    docker unpause 容器名         取消挂起
  • 进入容器

docekr attach 容器名

docker exec -it 容器名

  • 两者的区别
    • Bash是可以多开的
    • attach代表的是进入容器已经打开的bash
    • exec 代表是重新打开一个bash
    • exec本身的作用是让计算机去执行某一个命令
    • attach是真正的进入容器
    • docker exec -it 容器id /bin/bash 这个就是让exec去容器内在执行一个bash,从而让容器完成运行
  • 删除容器
    docker rm 容器名        
    docker rm -f 容器名          强制删除容器
  • 给容器命名
    docker run -itd --name 容器名 容器镜像
  • 将容器制作成镜像

docker commit 容器id\容器名 要启动的容器名 (lmk/centos-nginx)

小结

  • docker两个进入容器方法的区别

    attach 和 exec
    attach 是直接进入docker的bash环境
    exec 是先创建一个bash环境,然后再进入,退出是退出的刚刚创建的bash环境

  • docker的基础操作逻辑

docker 先pull将仓库中的镜像下载到本地,然后通过images查看到镜像,通过run 将镜像运行在容器中,然后可以对容器进行操作(start,stop 等),也可以对容器安装软件,安装完服务或者软件后,通过commit对容器进行打包成镜像,然后通过save将镜像保存到本地,在其他docker中load到其他docker中,或者push上传到docker仓库


本博客所有文章是以学习为目的,如果有不对的地方可以一起交流沟通共同学习 邮箱:1248287831@qq.com!