欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker简介以及常用命令

程序员文章站 2024-03-11 19:47:55
...

Docker的8个使用场景

  1. 简化配置
    虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件, 系统), Docker在降低额外开销的情况下提供了同样的功能。它能让你将运行环境和配置放在代码汇总然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。
  2. 代码流水线管理
    代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中坚环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。
  3. 提升开发效率
    开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。
  4. 隔离应用
    开发时会在一个台机器上运行不同的应用。
    一、 为了降低成本,进行服务器整合;
    二、将一个整体式的应用拆分成低耦合的单个服务(微服务架构)。
  5. 整合服务器
    Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。
  6. 调试能力
    Docker提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。他们提供了很多功能,包括可以为容器设置检查点,设置版本,查看两个容器之间的差别,这些特性可以帮助调试Bug。
  7. 多租户环境
    多租户环境的应用中,它可以避免关键应用的重写。我们一个特别的关于这个场景的例子是为loT(物联网)的应用开发一个快速、易用的多租户环境。这种多租户的基本代码非常复杂,很难处理,重新规划以应用不但消耗时间,也浪费金钱。
    使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,因为Docker环境启动的速度快,diff命令很高效。
  8. 快速部署
    Docker为进程创建一个容器,不需要启动一个操作系统,时间缩短为秒级别。
    可以在数据中心创建销毁资源而无须担心重新启动带来的开销. 通常数据中心的资源利用率只有30% ,通过使用Docker并进行有效的资源分配可以提高资源的利用率。

Docker优点(比较LXC)

跨平台可移植性:按统一标准打包(镜像中),可传播。
面向应用:优化部署应用(设计哲学)→API,接口及文档(体现)。
版本控制:追踪、查询、记录版本信息(应用程序更改史)和回滚版本等 。
组件复用:组件式搭建(基础镜像)→Python(运行环境) | postgreasql(基础镜像)。
共享性:公共的注册服务器(可免费下载源码)。

Docker组件(核心)

镜像:一个只读的静态模板(框架体系);包含环境和应用执行代码(框架语言);采用分层机制。将新增数据通过联合文件系统附加在原基础上。
容器:一个运行时环境,是镜像的运行状态,是镜像执行的一种动态表现。
库:使用注册服务器(共有的or私有的)存储和共享用户的镜像,是某个特定用户存储镜像的目录。

常用命令

镜像操作

//查看本地已下载镜像
docker images
//查询镜像(在docker hub上查询)https://hub.docker.com/
docker search 关键字
//下载镜像(tag表示标签,一般为软件版本,默认是latest)
docker pull 镜像名:tag
//删除镜像(查看本地进行会显示image id)
docker rmi image-id
//使用 Dockerfile 创建镜像
docker build [OPTIONS] PATH/URL/-

容器操作

//根据镜像运行容器:-d后台运行; -p将主机端口映射到容器端口 主机端口:容器端口
docker run --name mytomcat -d -p 8888:8080 tomcat:latest
//查看运行中的容器
docker ps
//停止容器:container-id(容器id)根据查询容器得到
docker stop container-id/container-name
//查询所有容器
docker ps -a
//启动容器
docker start container-id/container-name
//重启容器
docker restart container-id/container-name
//删除容器
docker rm container-id
//查看容器日志
docker logs container-id/container-name
//进入容器(两种均可)
docker attach container-id/container-name
docker exec -it container-id/container-name /bin/sh
//提交镜像
docker commit container-id centos-vim(自定义名)

更多命令见docker命令

  • Dockerfile