Docker教程目录
Docker简介与概述
tips:简介比较啰嗦,实践派可以直接跳到安装步骤
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化;
Docker 主要目标是‘build ,ship and run any app,anywhere’,也就是说通过对应用程序组件的封装,分发,部署,运行等生命周期的管理。使用户的app(可以是一个web应用程序或者数据库应用等)及其运行环境能够做到‘一次封装,到处运行’;
Linux容器技术的出现解决了这个问题,而docker就是基于他的基础上发展过来的。将应用运行到docker容器上面,而docker容器在任何操作系统上都是一致的,这就是实现跨平台跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作;
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 实际上就是一个虚拟化轻量级linux服务器,可以解决我们在开发,测试,生产等环境中运行配置问题。
Docker的使用意义
Docker:虚拟化容器技术,主要解决我们开发环境配置迁移的问题,使用Dockerfile简化配置,安装创建非常的方便,给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少,最主要是开发与运维一体化减少沟通的成本,降低了干架风险!降低了干架风险!降低了干架风险!(重要的事情说三遍)
我们现在有多个springboot项目,依赖不同的环境和配置,对于开发和运维人员来说,最希望的效果就是一次创建或者配置后,可以在任意地方、任意时间让应用正常运行,使用docker,开发人员可以使用镜像快速构建一套标准的开发环境,开发完成后,测试和运维人员可以使用完全相同的环境部署代码,只要是开发测试过的代码就可以确保在生产环境无缝运行;使用Dockerfile生成镜像的方式,只需要小小的配置修改,就可以替代以往大量的更新工作,所有的修改都以增量的方式进行分发和更新,从而实现自动化且高效的容器管理,docker可以快速创建和删除容器,实现快速迭代(特例:对于算法研究人员来说,可能不同的算法需要不同版本的软件,那么在同一个环境中就会存在冲突,docker 的环境隔离就可以很方便的用于不同环境的配置)
Docker安装
1. 安装需要的包
yum -y install yum-utils
yum -y install device-mapper-persistent-data
yum -y install lvm2
2. 设置稳定的镜像仓库(我这里设置的阿里云)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装docker
yum install docker-ce
4. 设置开机启动
systemctl enable docker
5. 启动
systemctl start docker
6.查看是否启动成功
docker version
如果有client和server说明成功。
Docker常用命令
1. 关于镜像images
# 推送镜像到自己的仓库
docker push xxx
# 拉取镜像到宿主机
docker pull xxx
# 查看本地镜像
docker images
# 删除本地未使用的镜像(批量操作)
docker image prune -a
# 强制删除本地未使用镜像
docker image prune -a -f
2. 关于容器
# 启动容器(执行镜像生成容器)
docker run
#查看所有容器
docker ps -a
# 查看启动的容器
docker ps
#停止容器(容器id维度)
docker stop 容器id
# 停止容器(容器名字维度)
docker stop 容器name
#删除容器(需要先停止容器运行)
docker rm 容器id
#删除容器(容器名字维度)
docker rm 容器name
#停止所有容器
docker stop $(docker ps -q)
#删除所有容器(需要先停止容器,才能执行删除)
docker rm $(docker ps -aq)
#重启容器(容器是已停止状态)
docker start 容器id
# 重启容器(容器是已停止状态,容器名字维度)
docker start 容器name