一、容器、docker概念
部属演变
- 物理机/KVM
- 部署慢
- 成本高
- 资源浪费,CPU内存使用不完
- 很难迁移
- 虚拟化的优点
- 资源得到了合理分配
- 容易扩展
- 很容易云化
- 容器是实现DevOps的解决方案
docker能做什么?
- 搭建环境,简化配置
- 提供开发效率
- 隔离应用
二、docker安装
Centos7安装
- 更新软件源
- 安装依赖:
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
-
添加repository :
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
安装正确
(如果出现Could not fetch/save,如下图,则再次执行这个语句)否则下面不能查看可用的docker
-
查看可用的docker (如果出错,则看上一步软件源是否更改成功)
- 指定版本安装docker (如果显示不能安装)则会出现下面错误,就需要复制版本号,应为手打可能会导致命令不正确。
- 启动docker
- 设置开机启动docker
- 实现hello-world(因为docker run的是一个镜像,没有hello-world镜像,所以就无法展示这个,等下面将新建一个hello-world镜像之后再run吧。)
三、docker基本使用
镜像和容器
- 底层技术支持
-
namespace:做隔离,pid,net,可以启动多个容器
-
control groups:做资源限制,比如对内存,对CPU做限制
-
union file system:镜像的分层
image
- 查看本地镜像
- 编写Dockerfile
- 拉取并查看镜像
-
- 创建.c文件
- 安装依赖包
- 编译.c文件
- 编写Dockerfile
- 构建image,-t指定自己的docker账号,注意最后有个点 .
- 查看自己构建的image
- image的运行
container
1.构建在image之上的,image(镜像)是只读的,container是可读写的
2.例子:类与对象的关系
3.查询本地正在运行的container(容器)
4.运行没有的image,会自动下载
5.进行交互运行容器
6.查看docker container正在运行的是一个,所有的是2个
7.删除容器
简写:
8.批量删除容器
9.删除所有已经运行完毕的container
基于原image,创建新的image
1.交互运行
2.安装一个软件
3.退出容器
4.基于修改的容器做新的镜像
基于Dockerfile去制作image
1.创建Dockerfile
2.用当前的Dockerfile构建
3.查看image