安装步骤:
一:安装docker所需的环境
1.安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2
2.配置yum源 使用国内的:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.查看docker版本:yum list docker-ce --showduplicates | sort -r
二:安装docker
注意:不使用1.13.1版本,该版本在jenkins使用docker命令时会说找不到配置文件
1.安装docker:yum -y install docker-ce-20.10.10-3.el7
2.查看docker版本:docker -v
3.启动docker:systemctl start docker
4.查看docker 启动状态:systemctl status docker
5.检查安装结果:docker info
运行Docker守护进程:systemctl start docker
停止Docker守护进程:systemctl stop docker
重启Docker守护进程:systemctl restart docker
6.查看容器:docker ps
7.停止容器:docker stop 容器id
三:修改镜像仓库:
vim /etc/docker/daemon.json
添加如下内容:
{
"debug":true,"experimental":true,"registry-mirrors":["https://pb5bklzr.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}
8.查看信息:docker info
仅供个人学习使用,如有不足请指出。
愿景:愿天下所有程序员能早日财富自由,永不搬砖!
正面回答这个问题之前,先看看虚拟机和Dcoker的区别。总结一下虚拟机和Docker的区别:
再正面回答一下“Docker可以代替虚拟机运行生产服务器么”?
应用部署到服务器上的过程: 因为我是做java开发的,就拿一个正常的java项目举例。首先需要在服务器上搭建基础环境:
这只是一个简单的项目的部署前的配置,之后把您的项目打包发送的tomcat,运行即可。那如果有十几个服务器需要部署呢?是不是就要配置环境十多次,那人不是崩溃了。而且还会出现开发那边运行没问题,部署上去有问题的事情。所以这个时候docker出来了。
应用部署到docker上的过程:
两步搞定,不需要配置复杂的环境。如果有十多个容器需要部署怎么办?直接远程下载镜像即可,是不是很简单。
docker适合平台统一在linux的大单位用,服务越多越好,比如几百、几千、几万。配合k8s调度和微服务改造、加上自动化运维,能够实现弹性扩容和缩容,达到on demand的效果,典型的用例是互联网内容提供商。
对于一般中小企业,只有几十台服务器的,平台不统一的,投资docker不如虚拟机。
除了不能跨os平台,docker的另一个缺陷是隔离度不够。
先说答案:可以,但是没有必要。
容器技术是虚拟化技术的应用,使用容器代替虚拟机运行程序自然是可以的,容器在持续集成方面相对虚拟机还有一定的优势,但是如果仅仅是为了用容器而用容器,则没有必要。
容器技术最大的优势是容器编排,可以实现线上服务的无缝扩容,缩容,降级,熔断等自动化操作,极大的降低运维成本。所以,如果不用容器编排,则无须急着迁移。
理论上完全可以的,但目前我所接触到的生产方案基本上都是docker在虚机集群上跑。
看系统的要求了。docker不可能完全替代全部,windows服务器不可以,软件系统没有使用docker重新加载的,也是很难的。
用docker需要配合自动化,否则那是给自己找麻烦
Docker是世界领先的软件容器平台。Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器,但docker本身并不是容器,它是创建容器的工具,是应用容器引擎。Docke最初实现是基于LXC。LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。
docker并不是LXC替代品,docker底层使用了LXC来实现,LXC将linux进程沙盒化,使得进程之间相互隔离,并且能够课哦内阁制各进程的资源分配。在LXC的基础之上,docker提供了一系列更强大的功能。
Docker能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。
用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
docker的三个概念:
镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。
容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。
仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。
docker的用途:
官方给的是bulid ship run,就是编译、装载、运行。就是实现了应用的封装、部署、运行的生命周期管理只要在glibc的环境下,都可以运行。
谐云自主研发的容器云平台,是基于Docker和Kubernetes技术构建的一套完整IT标准化和自动化框架,以“面向终态、优化IT资源”为目标的新一代PaaS平台,能够提高企业的IT管理能力,在降低运营成本和风险的同时,获得更高的运维效率,保障业务稳定运行和高效迭代。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)