Docker学习第一弹:初识Docker并安装(图解,超详细!)
Docker学习第一弹:初识Docker并安装(图解,超详细!)
Docker
前期基础
Linux学习第一弹—初识CentOs(图解,超详细!)
Linux学习第二弹—Linux基本命令(图解,超详细!)
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的不同
传统虚拟机 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(图解,超详细!)
一台Linux操作系统,如 CentOS 7
使用Xshell连接服务器
1. 卸载旧的版本
# 卸载旧的版本
$ 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
2. 安装基本环境
# 更新 yum 源为阿里云镜像
$ 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
3. 设置镜像的仓库
注意!!下载默认用国外的,太慢不要用!
用国内镜像,此处使用腾讯云镜像
# 不要用官网默认这个!默认是国外的
$ sudo yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
# 换成下面的腾讯云镜像
$ sudo yum-config-manager --add-repo=https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo
# 查看已添加的 Docker 软件源
$ yum list docker-ce
4. 安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
要看到Complete再收手!
5.启动Docker
systemctl start docker
执行以下命令,检查安装结果
docker info
6.使用Docker
切换镜像源
# 创建配置文件
touch /etc/docker/daemon.json
# 添加镜像源
sudo vim /etc/docker/daemon.json
在切换国内镜像源时,镜像源随时可以会崩掉,无法使用
因此推荐一个国内有效镜像源总结网页
在不确定自己所选择的镜像源是否有效时,可以ping一下
拉取hello-world镜像
docker pull hello-world
默认情况下,每次重启虚拟机都需要手动启动Docker和Docker中的容器。通过命令可以实现开机自启:
# Docker开机自启

systemctl enable docker
# Docker容器开机自启
docker update --restart=always [容器名/容器id]
至此,docker安装完成!!!