做项目迟早要学的Docker技术(1)

最近在做项目,所有的功能都实现了之后就剩下部署了,而部署的过程便学习到了新的技术——Docker。本文只会讲一些理论的知识,因为不同系统的电脑安装方法可能会有差异,所以就不做介绍,可根据具体的系统版本查找对应的教程官网安装教程

1、为什么要用Docker

一个软件的实现分为开发和运维两大部分,在开发阶段已经把所有的代码写好了,到了运维时就需要进行部署。部署的过程就常常出现更换了设备就运行不了的情况,这就是由于操作系统、运行环境、应用配置可能不相同而导致的结果。如果每次部署都要考虑这么多的情况则太过麻烦。所以Docker应运而生!

2、什么是Docker

Docker的目标是在任何地方构建、发布并运行任何应用。解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
通俗说,Docker就是连带原始环境一起全部打包安装,从而省去了配置环境过程的一种工具(类似于虚拟机)。消除“在我的电脑上能正常工作,换一台电脑就不行的现象”

3、Docker的好处

  • 在一个高并发、高流量的大项目中,往往部署项目是以集群的方式部署的,通俗说就是在多个设备上进行部署。如果每一个设备都要一遍遍安装需要的所有环境,那么工程量过于庞大。而使用Docker把所有的内容打包成一个镜像文件,那么之后在所有的设备上都只需要安装这一个镜像文件便能快速高效地完成部署工作
  • 之前说了Docker类似于虚拟机,但是和虚拟机相比,Docker的加载速度会更快,而且相当于是一个精简版的操作系统,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。
    在这里插入图片描述

4、三要素

  • 镜像(image):模板,类似于一个类。当我们把代码、环境打包好之后就叫做镜像文件。
  • 容器(container):用镜像创建的运行实列,类似于由类创建出的对象。利用容器便可独立运行程序,对于每一个容器都可以启动、开始、停止、删除,并保证每个容器都是相互隔离的。可把容器看作一个精简版的Linux环境。
  • 仓库(repository):集中存放镜像的地方。用法一般就是先构建一个镜像然后上传到远程仓库里,等有需要了便从仓库种下载下来使用。

5、常用命令

帮助命令

命令作用
docker version查看docker版本
docker info查看docker的信息(比version更详细)
docker help查看各种docker命令,类似man

镜像命令

命令作用选项
docker images显示当前本地存在的镜像-a显示所有镜像和对应每一层的内容; -q只显示镜像ID; --digests显示镜像的摘要信息; --no-trunc显示镜像完整的信息
docker search 镜像名查询镜像-s显示指定星级范围的镜像
docker pull 镜像名:版本下载镜像,若省略版本则默认下载最新版本
docker rmi 镜像名:版本删除镜像,若省略版本则默认删除最新版本-f强制删除
docker commit 容器ID 目标镜像名提交容器副本使之成为新的镜像,也就是说假如一个容器做了一些新的修改,通过commit便可以创建出一个最的镜像-m提交的描述信息;-a作者
docker build根据dockerFile创建镜像-f指出dockerFile的路径;-t新镜像的名字

容器命令

命令作用选项
docker run 镜像名字执行容器,先检查本地有没有该镜像,若没有则从仓库下载,然后根据镜像生成容器运行–name为容器指定一个新名称; -d后台运行容器; -i开启一个可交互的容器(比如ubuntu); -t 为容器分配一个伪输入终端-i,-t通常一起使用; -p手动分配一个访问端口; -P随机生成一个访问端口
docker ps查看docker正在运行的所有容器-a显示所有正在运行的容器和已停止的容器
exit关闭容器
ctrl + p + q暂时离开容器回到宿主机但并没有关闭
docker start 容器名启动容器
docker restart 容器名重启容器
docker stop 容器名停止容器
docker kill 容器名强制关闭容器
docker rm 容器名删除容器-f强制删除
docker logs 容器ID查看容器日志-t显示时间; -f一直追加打印最新的日志; --tail数字 显示最新的多少条日志
docker top 容器ID查看容器内部正在运行的进程
docker inspect 容器ID查看容器内部结构细节
docker exec -it 容器ID 命令创建正在运行的容器的子进程执行指定的命令并返回结果(只要结果不进去)
docker attach 容器ID进入正在运行容器并通过命令进行交互(先进去再得到结果)
docker cp 容器ID:容器内路径 目的主机路径从容器将文件拷贝到宿主机

总结:

  • 以往写代码都只考虑能运行就可以,从来不考虑程序运行的环境是什么样的,更不会在意更换环境后代码还好不好使。以后要学会除了考虑代码之外,还要考虑配置环境、运行环境、依赖包等共同参与到程序正常运行的各种因素。
  • 正常来说使用的远程仓库是来自hub.docker.com,这是国外的网站,下载镜像会比较慢。所以需要更换国内的远程仓库来实现加速下载的目的。这种技巧不只适用于此,也适用于Linux下载软件、pip下载第三方库文件等等都是有类似的方式
  • Docker也是目前很流行的一个技术,很多大型的企业都在使用。所以学习这样的主流技术也是很有必要的
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值