linux之docker

简介

Docker是一个开源的应用容器引擎,基于go语言,遵循从Apache2.0协议开源

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化.

容器是完全使用沙箱机制,相互之间不会有任何接口.

docker的三大概念

镜像:
    --理解为系统盘dvd镜像,轻量级的镜像文件

仓库:
    --存储docker镜像的

容器:
    --是基于镜像运行出的,容器实例
三大概念

Docker应用场景

1.本地依赖
    --使用docker,可以节省大量时间.docker能提升开发者的开发效率,让我们快速搭建开发环境,开发环境的机器通常内存比较小,此前使用虚拟的时候,经常需要为开发环境的机器加内存,而通过 Docker 可以轻易的让几十个服务在 Docker 中跑起来。

2.搭建环境
     --它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度

3.微服务
     --微服务架构一一将一个整体的应用拆分成松耦合的单个体服务.你可以将每个服务打包为一个 docker 镜像并使用 docker-compose 来模拟生产环境(checkout docker networks)。最开始实践的时候可能会比较费时费力,但长远地来看,最终将产生巨大的生产力。

4.自动测试
    --这里不是指在 Docker 中运行测试用例,而是将测试用例与镜像紧密运行在一起。当你针对一个 docker 镜像编写测试用例时会有一个很大的优势

5.部署过程
    --许多主流的主机提供商都支持托管 docker,如果你拥有一个具有 shell 访问权限的专用节点/vm,那么事情将变得更容易。只需要设置好 docker,并在你想要的端口上运行你的镜像即可。

6.持续部署
    --都说 Docker 天生适合持续集成/持续部署,在部署中使用 Docker,持续部署将变得非常简单,并会在进入新的镜像后重新开始。Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

7.多租户环境
    --Docker 有意思的一个使用场景是在多租户的应用中,它可以避免关键应用的重写。如果你将应用程序服务公开给多个租户(租户指一组用户,例如组织),使用单租户方案设计的应用程序如果用上了 sub-domain + docker 可以快速获得提供多租户的服务。

8.来自一台机器的而多个app
    --ocker 仍可以很好地管理单个机器上的所有服务。你应该使用文件夹挂载来为每个基于数据的 docker 镜像保留数据。

9.扩容
    --Docker 通过创建另一个容器来帮助你轻松地进行水平扩展。如果遇到巨大的高峰流量,Docker 可以帮助你解决问题 —— 只需添加更多的机器并增加负载均衡器背后运行的容器数量。
场景

Docker的优点

1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。
Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。
2、避免选择恐惧症 如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,
所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
3、节省开支: 一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,
让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

Docker安装

1.安装docker,由于网速问题,选择阿里云的yum源下载

yum install docker -y

2.启动docker

systemct1 start docker

3.docker加速器,加速下载

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
会生成一个docker配置文件,路径是/etc/docker/daemon.json

4.配置了加速器,需要重启docker

systemct1 restart docker

Docker的基本命令学习

#下载docker镜像
docker pull hello-world
#运行docker镜像,产生容器实例

#运行docker镜像,ubuntu系统
docker run ubuntu  

#交互式的运行ubuntu 容器,进入容器空间内

docker run -it  ubuntu  /bin/bash 
    #参数解释
    -i 交互式的命令操作
    -t 开启一个终端提供访问
    /bin/bash   指定shell解释器
    
#打包构建一个携带vim的centos镜像文件
    1.先运行一个centos基础镜像
    docker run -it centos /bin/bash 
    2.在容器空间内,安装vim
    yum install vim -y 
    3.退出容器空间,提交这个容器,为新的镜像
    docker commit   1d5698b91178    yuchao163/s17centos-vim
    
    
#导出本地的镜像文件
docker save  0fc9d49cb739   > /opt/s17centos.tar.gz
    
#导入镜像文件,    
docker load  <  /opt/s17centos.tar.gz
#删除容器记录

docker rm  容器id 

#批量删除容器记录
docker  rm `docker ps -aq`

#强制删除所有容器记录

docker rm -f  `docker ps -aq`

#删除镜像记录

docker rmi  镜像id 

#批量删除镜像文件
docker rmi `docker images -aq`  
改:

#修改docker镜像名,tag标记名
docker tag  镜像id   新的标记名 


查:

运行过docker镜像后,会产生容器记录

#差看docker镜像的命令

docker  image ls  
docker  images   #等同于上述命令,查看镜像 


#查看正在运行的容器进程,
docker container ls  
docker ps 

#docker ps只能查看正在运行的容器
docker ps -a  查看所有的容器记录 

#docker容器,必须有后台程序在运行,否则容器就退出

#查询docker镜像记录 

docker search centos 
改和查
原文地址:https://www.cnblogs.com/tianshuai1/p/11077910.html