一、Docker简介
1.Docker是什么?
产生背景:
- 开发和运维之间因为环境不同而导致的矛盾(不同的操作系统、软件环境、应用配置等) DevOps
- 集群环境下每台服务器都配置相同的环境,太麻烦
- 解决“在我的机器上可以正常工作”的问题
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后
发布到任何流行的 Linux 机器上,也可以实现虚拟化。
阿里云、百度云等都支持Docker技术
[官网](https://www.docker.com/)
[中文官网](http://www.docker%C2%ADcn.com/)
2.Docker作用
Docker是一种容器技术,使用Docker可以:
- 将软件环境安装并配置好,打包成一个镜像Image,然后将该镜像发布出去(Docker仓库)
- 其他使用者可以在仓库中下载获取这个镜像
- 通过Docker运行这个镜像,就可以获取同样的环境(容器)
Docker简化了环境部署和配置,实现“一次构建,处处运行”,避免了因运行环境不一致而导致的异常
可以将Docker简单的认为是一个虚拟机,可以运行各种软件环境的虚拟机,但与传统虚拟机技术有所不同
Docker容器技术与传统虚拟机技术的区别:
- 传统虚拟机技术:模拟一个完整的操作系统,先虚拟出一套硬件,然后在其上安装操作系统,最后在系
统上再运行应用程序
缺点:资源占用多,启动慢 - Docker容器技术:不是模拟一个完整的操作系统,没有进行硬件虚拟,而是对进程进行隔离,封装成容
器,容器内的应用程序是直接使用宿主机的内核,且容器之间是互相隔离的,互不影响
优点:更轻便、效率高、启动快、秒级
3.基本术语
- Docker主机(Host)
安装了Docker程序的主机,运行Docker守护进程 - Docker镜像(Image)
将软件环境打包好的模板,用来创建容器的,一个镜像可以创建多个容器 - Docker容器(Container)
运行镜像后生成的实例称为容器,每运行一次镜像就会产生一个容器,容器可以启动、停止或删除
容器使用是沙箱机制,互相隔离,是独立是安全的
可以把容器看作是一个简易版的Linux环境,包括用户权限、文件系统和运行的应用等 - Docker仓库(Repository)
用来保存镜像的,仓库中包含许多镜像,每个镜像都有不同的标签Tag
官方仓库:https://hub.docker.com/
使用Docker的步骤:
- 安装Docker
- 从Docker仓库中下载软件对应的镜像
- 运行这个镜像,此时会生成一个Docker容器
- 对容器的启动/停止就是对软件的启动/停止
二、准备Linux系统
- 安装CentOS
- 连接Linux服务器
- 基本操作
常用命令
- cat /proc/cpuinfo # 查看cpu信息
- cat /proc/meminfo # 查看内存信息
- uname r # 查看内核信息,Docker要求CentOS必须是64位,且内核是3.10及以上
- sudo reboot # 重启,sudo表示以管理员root身份执行
- sudo halt # 关机
三、Docker安装
1.安装
# 设置yum源
yum install y yumutils devicemapperpersistentdata lvm2
yumconfigmanager addrepo https://download.docker.com/linux/centos/dockerce.repo
# 如果上面这个不行的话要用阿里云的镜像
yum makecache fast
# 安装DockerCE
yum y install dockerce
2.启动/停止
docker version # 查看版本
systemctl start docker # 启动
systemctl stop docker # 停止
systemctl status docker # 查看状态
systemctl restart docker # 重启
systemctl enable docker # 设置开机自动启动
# 验证,运行helloworld
docker run helloworld # 下载helloworld镜像并运行
3.配置Docker镜像加速
四、Docker操作
输入 docker 可以查看Docker的命令用法,输入 docker COMMAND help 查看指定命令的详细用法
1.镜像操作
操作 | 命令 | 说明 |
---|---|---|
查找 | docker search 关键字 | 可以在Docker Hub网站查看镜像的详细信息,如镜像的tag标签 |
抽取 | docker pull 镜像名:tag | :tag表示软件的版本,如果不指定默认是latest |
列表 | docker images | 查看所有本地镜像 |
获取元信息 | docker inspect 镜像id | 获取镜像的元信息,详细信息 |
删除 | docker rmi -f 镜像id或镜像名:tag | 删除指定的本地镜像,f表示强制删除 |