Docker知识点整理
一、什么是Docker
Docker是一个 跨环境迁移容器,它是用来解决开发测试等环境不同导致的BUG问题的。
Docker的主要原理是将项目的环境和代码一起打包成Image镜像进行保存,然后在目标服务器上运行Container示例进行项目运行。个人觉得有些类似一个虚拟机但是优于虚拟机,Docker的技术可以直接和操作程序,相比虚拟机简化了虚拟机的操作系统,整体轻快了许多。
二、Docker安装
Docker安装比较固定,这里提供指令依次运行即可
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
三、Docker基本指令
1.系统基本命令:和一般的系统服务一样:
systemctl start/stop/restart docker 启动/关闭/重启服务
systemctl status docker 查看状态
systemctl enable docker 设置开机启动
2:镜像基本命令:
docker images 查看镜像目录 参数-q可查找id
docker search 搜索镜像
docker pull 镜像名:版本号 下载镜像,
docker rmi ${id} 删除镜像
3:容器命令:
docker run -it --name=name centos:7 /bin/bash 启动容器
-it 创建的是交互式容器,立刻进行输入
-id创建的守护容器,后台启动,exit不立刻退出
docker ps -a 查找运行的容器
docker exec -it {name} /bin/bash 进入容器
exit 退出容器界面
docker rm {name} 删除容器
docker inspect {name}查看容器信息
四、Docker容器数据卷
- .数据卷是宿主机中的一个目录/文件,它是容器里的数据的挂载,主要用来管理容器内部的数据,实现数据持久化和数据交换。
- 容器内目录和挂载的数据卷一直保持同步,但删除容器不会删除挂载的数据卷,数据得以持久化。
- 一个目录可以挂载多个容器,实现数据同步。
- .配置数据卷
docker run -v 宿主机目录:容器内目录
docker run -it --name=c2 -v /root/data:/root/data_container centos:7 /bin/bash
-数据卷容器也可以实现数据的交换
//就是不配置容器内目录
docker run -it --name=c3 -v /volume centos:7 /bin/bash
//交换数据的容器配置
docker run -it --name=c1 -v --volume -from c3 centos:7 /bin/bash
docker run -it --name=c2 -v --volume -from c3 centos:7 /bin/bash
五、Docker容器和镜像的转换
1.镜像的原理
Docker的镜像系统是一个可复用的多层文件系统,每一个容器的类型在引入前就会查找它所依赖的镜像是否存在,同时重复利用依赖的文件而只应用pull独立的部分,每一层只读的镜像就是一个Docker镜像
2.容器和镜像的转换
//转换为镜像
docker commit {id} {镜像名称:版本号}
//压缩打包
docker save -o {name} {镜像名称:版本号}
//解压
docker load -i {name}
3.Dockerfile
Dockerfile 是一个文本文件,包含构成镜像的指令,运行它会创建一个与原镜像相同的镜像,个人觉得类似持久化技术的AOF
dockerfile 文件建立镜像
docker build -f 文件路径
六、Docker compose服务编排
composer是一个编排多容器分布式部署的工具,它提供指令集管理服务架构。
1.Dockerfile定义镜像
2.使用docker-compose.yml定义分布式服务的配置
3.运行docker-compose up启动全部服务