Docker基本介绍

Docker概述

Docker为什么会出现

在学习Docker之前,我们先来看下Docker为什么会出现?

大家在公司中在开发项目的时候,一般会有两套环境,一套开发环境,一套线上环境,可能还有测试环境,演示环境等等,这时候开发和运维人员是比较苦恼的,一套代码要部署多次。

而且也非常容易出现一种程序员经常碰到的现象:在我的电脑上可以运行啊!你是不是配置的不对啊!你重启试试等等这些问题...

在比如我的版本更新了,导致服务不可用了,对于运维来说,考验就非常大

而现在大家都应该听过一个词,就是DevOps,开发即运维。

一个公司如果只有一台服务器,你的项目只要部署一次就可以,但是只有一台服务器的情况现在基本是存在的。如果有十台服务器,就要部署10次,那100台,1000台呢?

还有很多程序员是在Windows上来做开发的,而一般的服务器是Linux系统,把Windows的项目部署到Linux中也是比较麻烦的。

那传统的解决方式是:开发把代码发布出来,运维来做部署,有没有开发部署上线,一套流程就可以解决的方案呢?

Docker给我们提出了解决方案。

Docker历史

Docker 公司位于旧金山,由法裔美籍开发者和企业家 Solumon Hykes 创立,其标志如下图所示。

有意思的是,Docker 公司起初是一家名为 dotCloud 的平台即服务(Platform-as-a-Service, PaaS)提供商。

底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为"Docker"。Docker就是这样诞生的!

2013年,dotCloud 的 PaaS 业务并不景气,公司需要寻求新的突破。于是他们聘请了 Ben Golub 作为新的 CEO,将公司重命名为"Docker",放弃dotCloud PaaS 平台,怀揣着"将 Docker 和容器技术推向全世界"的使命,开启了一段新的征程。

如今 Docker 公司被普遍认为是一家创新型科技公司,据说其市场价值约为 10 亿美元。Docker 公司已经通过多轮融资,吸纳了来自硅谷的几家风投公司的累计超过 2.4 亿美元的投资。

在容器技术出来之前,我们都是使用虚拟机技术

虚拟机:在Windows中装一个VMware(其他的可以),通过这个软件我们可以虚拟一台或者多台电脑,它的缺点就是比较笨重
比较docker和虚拟机技术的不同:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作,然后在这个系统上安装和运行软件
  • Docker容器内的应用直接运行在 宿主机的内核,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
  • Docker每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响

Docker能做什么

1.应用更快速的交付和部署

  • 传统的方式:帮助文档,安装程序,部署环境,上线
  • Docker:打包镜像,发布测试,一键运行

2.更便捷的升级和扩缩容

3.更简单的系统运维

  • 在容器化之后,我们的开发,测试环境都是高度一致的

4.更高效的利用计算机资源

  • Docker是内核级别的虚拟化,可以在一个机器上可以运行很多的容器实例!!

Docker的基本组成

  • Client:客户端
  • DOCKER_HOST:服务端
  • Containers:容器
    • 容器(container):docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。
  • Images:镜像
    • 镜像(image):docker镜像好比是一个模板,可以通过这个模板来创建容器服务,Redis镜像==>run==>容器(提供服务),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
  • Registry:仓库
    • 仓库(repository):仓库就是存放镜像的地方,仓库分为公有仓库和私有仓库,docker hub(默认是国外的)

安装Docker

大家如果不想安装,可以用在线docker:labs.play-with-docker.com/

centos7的安装帮助文档 docs.docker.com/engine/inst...

这里我用CentOS来演示,Docker支持的版本还是比较多的

1.卸载老的版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.需要的安装包

sudo yum install -y yum-utils

3.设置镜像的仓库

# 默认是从国外的,下载比较慢,建议用下面链接
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo     
# 配置阿里云docker镜像地址
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.1.更新软件包索引

yum makecache fast

4.安装docker

docker-ce   是社区版  

sudo yum install docker-ce docker-ce-cli containerd.io

5.启动docker

docker version      查看docker版本

6.测试hello world

sudo docker run hello-world

7.查看已经下载的镜像

docker image ls

8.卸载docker

sudo yum remove docker-ce docker-ce-cli containerd.io

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
相关推荐
海鸥814 小时前
查看k8s集群的资源使用情况
云原生·容器·kubernetes
云上艺旅4 小时前
K8S学习之基础十八:k8s的灰度发布和金丝雀部署
学习·云原生·容器·kubernetes
Macle_Chen8 小时前
Mac服务器上创建Docker并安装宝塔环境
服务器·macos·docker
ChinaRainbowSea8 小时前
Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案
java·linux·运维·服务器·docker·架构
Hellc0078 小时前
Docker 部署 MongoDB 并持久化数据
mongodb·docker·容器
云上艺旅10 小时前
K8S学习之基础十五:k8s中Deployment扩容缩容
学习·docker·云原生·kubernetes·k8s
颜淡慕潇13 小时前
【K8S系列】Kubernetes中查看日志常见问题&解决方案
后端·云原生·容器·kubernetes
三天不学习13 小时前
Windows 系统 Docker Desktop 入门教程:从零开始掌握容器化技术
运维·docker·容器
mumu-hn13 小时前
Docker基础篇——Ubuntu下Docker安装
运维·docker·容器
自律的蜗牛15 小时前
在 Docker 中安装并配置 MySQL
mysql·docker·容器