Docker入门教程:从概念到CentOS系统安装
Docker入门教程:从概念到CentOS系统安装
Docker是一种开源的容器化技术,它允许开发者将应用程序及其依赖打包成一个独立的容器,从而实现快速部署和运行。本文将从Docker的基本概念、历史背景、与虚拟机的区别,以及在CentOS系统上的安装步骤等方面,为读者提供一个全面的入门指南。
Docker概述
Docker的出现背景
在传统的软件开发和部署过程中,开发和生产环境的差异常常导致各种兼容性问题。一款产品,开发和上线两套环境,应用环境配置费时费力,而且容易出问题。尤其对于机器学习和深度学习的库更是如此,很可能存在版本问题、底层依赖冲突问题。
因此,发布项目时,不只是一套代码过去,而是代码+环境整体打包过去,所谓开发即运维,保证系统稳定性,提高部署效率。
使用Docker后的流程:
- 开发:建立模型–环境–打包带上环境,即镜像–放到Docker仓库
- 部署:下载Docker中的镜像,直接运行即可
Docker的思想来自于集装箱,集装箱,对环境进行隔离。Docker通过隔离机制,可以将服务器利用到极致。
Docker的历史
- 2010年,Docker的前身是一个叫做dotCloud的公司,它是一个基于PaaS(平台即服务)的云计算平台。
- 2013年,dotCloud公司发布了Docker,它是一个用于在Linux操作系统上创建和管理容器的开源项目。这个项目很快就引起了广泛的关注,并吸引了许多开发人员和公司的注意。
- 2014年,Docker公司成立,专注于发展和支持Docker项目。Docker公司开源了Docker Engine,这是Docker的核心组件,用于构建和运行容器。
- 2015年,Docker公司推出了Docker Hub,这是一个用于存储和共享Docker镜像的云平台。它成为了Docker生态系统中重要的一部分,允许开发人员轻松地共享和使用基于容器的应用程序。
- 2016年,Docker公司推出了Docker Swarm,它是一个用于容器编排和集群管理的工具。Docker Swarm使得在多个主机上部署和管理容器变得更加简单。
- 2017年,Docker公司推出了Docker Enterprise Edition(现在称为Docker Enterprise),这是一个针对企业用户的容器平台。它提供了一系列的功能和工具,帮助企业更好地管理和扩展Docker容器。
目前,Docker已经成为了容器技术的事实标准,被广泛应用于各种不同的场景和行业。Docker的开放性和可移植性使得它成为了现代应用程序开发和部署的重要工具。
容器vs虚拟机
在容器技术出来之前,用的是虚拟机技术。虚拟机原理如下:
- 虚拟机的缺点:
- 资源占用多
- 冗余步骤多
- 启动很慢
容器化技术:
由示意图可以看出,虚拟机与容器最大的区别就在于:容器不是模拟的完整的操作系统,仅仅包含lib+app。
二者对比:
特征 | 传统虚拟机 | Docker |
---|---|---|
虚拟内容 | 硬件+完整的操作系统+软件 | APP+LIB |
大小 | 笨重,通常几个G | 轻便几个M或KB |
启动速度 | 慢,分钟级 | 快,秒级 |
安全性 | 高 | 中等 |
Docker安装
Docker的基本组成
需要明确以下几个概念:
- 镜像(image):Docker镜像好比一个模板,可以通过这个模板来创建容器(container),一个镜像可以创建多个容器,类似Java中的Class。
- 容器(container):类似Java中通过Class创建的实例,Object;容器可以理解为一个简易的系统。
- 仓库(repository):存放镜像的地方,分为共有仓库和私有仓库。
- Docker Hub:国外的仓库。
- 阿里云:配置镜像加速。
当我们利用 Docker 安装应用时,Docker 会自动搜索并下载应用镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker 会在运行镜像时创建一个隔离环境,称为容器(container)。
环境准备
- 一台Linux操作系统,如 CentOS 7
- 使用Xshell连接服务器
安装步骤
卸载旧的版本
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin \ docker-distribution docker-rhel-push-plugin sudo yum autoremove
安装基本环境
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo sudo yum clean all sudo yum makecache sudo yum install -y yum-utils
设置镜像的仓库
注意:下载默认用国外的,太慢不要用!用国内镜像,此处使用腾讯云镜像
sudo yum-config-manager --add-repo=https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo yum list docker-ce
安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
要看到Complete再收手!
启动Docker
systemctl start docker
执行以下命令,检查安装结果
docker info
使用Docker
切换镜像源
touch /etc/docker/daemon.json sudo vim /etc/docker/daemon.json
在切换国内镜像源时,镜像源随时可以会崩掉,无法使用。因此推荐一个国内有效镜像源总结网页。在不确定自己所选择的镜像源是否有效时,可以ping一下。
拉取hello-world镜像
docker pull hello-world
设置开机自启
默认情况下,每次重启虚拟机都需要手动启动Docker和Docker中的容器。通过命令可以实现开机自启:
systemctl enable docker docker update --restart=always [容器名/容器id]
至此,docker安装完成!