Docker学习
初识docker
- 开源的应用容器引擎
- 容器是完全使用沙箱机制,相互隔离
- 可打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上
- 容器性能开销极低
Docker架构
Docker命令
服务相关命令
//启动
systemctl start docker
//停止
systemctl stop docker
//重启
systemctl restart docker
//查看
systemctl status docker
//设置开机启动
systemctl enable docker
容器相关命令
//查看
docker ps -a
//创建
doker run -i -t --name=cl centos:7 /bin.bash
//后台运行创建
docker run -id --name=cl centos:7
//进入
docker exec -it c2 /bin/bash
//启动
docker start c2
//删除
docker rm c1
//查看信息
docker inspect c2
//停止
docker stop c2
Docker容器数据卷
概念
- 数据卷是宿主机中的一个目录或文件
- 当容器目录和数据卷目录绑定之后,对方的修改就会立即同步
- 一个数据卷可以被多个容器同时挂载
- 一个容器也可以被挂载多个数据卷
作用
- 容器数据持久化
- 外部机器和容器间接通信
- 容器之间数据交换
配置数据卷
创建启动容器的时候,是同-v参数设置数据卷
docker run ... -v 宿主机目录:容器内目录
注意
- 绝对路径
- 目录不存在会自动创建
- 可以挂载多个数据卷
配置数据卷容器
//创建启动c3数据卷容器
docker run -it --name=c3 -v /volume centos:7 /bin/bash
//创建启动c1 c2容器,使用
docker run -it --name=c1 --volume-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volume-from c3 centos:7 /bin/bash
Dockerfile
Docker镜像原理
- Docker镜像由特殊的文件系统叠加而成
- 最低端是bootfs,并使用宿主机的bootfs
- 第二层是root文件操作系统rootfs,称为base image
- 在往上可以叠加其他的镜像文件
- 统一文件系统技术能够将不同的层整合成一个文件系统,为这些层提供一个统一的视角,这样就隐藏了多层的存在.
- 一个镜像可以放在另一个镜像的上面.位于下面的镜像成为父镜像,最底部镜像成为基础镜像
- 当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器
镜像制作
容器转为镜像
docker commit 容器id 镜像名称:版本号
docker save -o 压缩文件名称 镜像名称:版本号
docker load -i 压缩文件名称
Dockerfile概念
- Dockerfile是一个文本文件
- 包含一条条指令
- 每条指令构建一层,基于基础镜像,最终构建出一个新的镜像
Docker服务编排
微服务架构的应用系统中一般包含若干个微服务,每个微服务一般部署多个实例,每个微服务都要手动启停,维护的工作量很大
服务编排
按照一定的业务规则批量管理容器
DockerCompose
一个编排多容器分布式部署的工具.提供命令集管理容器化应用的完整开发周期,包括构建,启动和停止
步骤
- 利用dockfile定义运行环境
- 使用docker-compose.yml定义组成应用的各个服务
- 运行docker-compose up 启动应用
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~