[Docker]
概述
- 开源的应用容器引擎
- 容器是完全使用沙箱机制,相互隔离
- 可打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上
- 容器性能开销极低
架构

命令
服务相关命令
1 2 3 4 5 6 7 8 9 10
| //启动 systemctl start docker //停止 systemctl stop docker //重启 systemctl restart docker //查看 systemctl status docker //设置开机启动 systemctl enable docker
|
容器相关命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| //查看 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
|
容器数据卷
概念
- 数据卷是宿主机中的一个目录或文件
- 当容器目录和数据卷目录绑定之后,对方的修改就会立即同步
- 一个数据卷可以被多个容器同时挂载
- 一个容器也可以被挂载多个数据卷
作用
- 容器数据持久化
- 外部机器和容器间接通信
- 容器之间数据交换

配置数据卷
1
| docker run ... -v 宿主机目录:容器内目录
|
- 注意
- 绝对路径
- 目录不存在会自动创建
- 可以挂载多个数据卷
配置数据卷容器
1 2 3 4 5
| //创建启动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
Dockerfile概念
- Dockerfile是一个文本文件
- 包含一条条指令
- 每条指令构建一层,基于基础镜像,最终构建出一个新的镜像
Docker镜像原理
- Docker镜像由特殊的文件系统叠加而成
- 最低端是bootfs,并使用宿主机的bootfs
- 第二层是root文件操作系统rootfs,称为base image
- 在往上可以叠加其他的镜像文件
- 统一文件系统技术能够将不同的层整合成一个文件系统,为这些层提供一个统一的视角,这样就隐藏了多层的存在.
- 一个镜像可以放在另一个镜像的上面.位于下面的镜像成为父镜像,最底部镜像成为基础镜像
- 当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器
镜像制作
容器转为镜像
1 2 3
| docker commit 容器id 镜像名称:版本号 docker save -o 压缩文件名称 镜像名称:版本号 docker load -i 压缩文件名称
|
Docker服务编排
微服务架构的应用系统中一般包含若干个微服务,每个微服务一般部署多个实例,每个微服务都要手动启停,维护的工作量很大
服务编排
按照一定的业务规则批量管理容器
DockerCompose
一个编排多容器分布式部署的工具.提供命令集管理容器化应用的完整开发周期,包括构建,启动和停止
步骤
- 利用dockfile定义运行环境
- 使用docker-compose.yml定义组成应用的各个服务
- 运行docker-compose up 启动应用
Docker私有仓库
搭建

将镜像上传至私有仓库

拉取镜像
