Docker简介| 青训营
Docker是一种操作系统级虚拟化技术,可以提供轻量级的虚拟化解决方案。Docker利用容器技术,可以在沙箱机制下运行独立的应用。
概念
管道类似于文件重定向,可以将前一个命令的stdout重定向到下一个命令的stdin。
要点
- 管道命令仅处理
stdout,会忽略stderr。 - 管道右边的命令必须能接受
stdin。 - 多个管道命令可以串联。
与文件重定向的区别
- 文件重定向左边为命令,右边为文件。
- 管道左右两边均为命令,左边有
stdout,右边有stdin。
Docker的优势
- 更高效的利用系统资源,一台物理机可以运行多个容器实例
- 快速部署应用,通过镜像可以快速创建容器
- 持续交付和部署,可以通过Dockerfile构建镜像自动化部署应用
- 可移植性,可以将环境和配置打包到镜像中,并在不同环境中运行
- 分离应用和基础设施,应用可以跨平台运行,减少环境依赖
- 隔离应用,容器机制提供了隔离和安全保障
Docker基本概念
- 镜像(Image):包含文件系统的模版,一个只读的层叠文件系统
- 容器(Container):从镜像创建的运行实例,可以启动、停止和删除
- 仓库(Repository):集中存放镜像文件的场所,可以是私有仓库或公共仓库
Docker基本操作
安装Docker
可以按照Docker官方文档中的步骤,在不同平台上安装Docker。
镜像操作
docker pull:从仓库拉取镜像到本地docker images:列出本地镜像docker rmi:删除本地镜像docker build:使用Dockerfile构建镜像docker tag:为镜像打标签docker push:将镜像推送到仓库
容器操作
docker ps:列出运行中的容器docker run:创建并启动一个容器docker start/stop/restart:启动/停止/重启容器docker rm:删除容器docker exec:在运行中的容器内执行命令
其他常用命令
docker logs:查看容器日志docker attach:进入运行中的容器docker cp:在容器和主机间复制文件docker inspect:查看容器内部信息
Docker架构
Docker主要由以下几个组件组成:
- Docker客户端:用户与Docker交互的主要工具
- Docker守护进程:管理镜像、容器、网络和存储的后台进程
- Docker registry:保存镜像的仓库,可以是公有仓库或私有仓库
- Docker compose:用于定义和运行多容器应用
- Docker engine:管理和运行容器的基础,包括镜像管理、容器执行引擎等功能
客户端通过REST API或CLI与守护进程通信,完成对镜像和容器的管理。守护进程与容器实例通过内部网络通信。整个架构保证了Docker的高性能和稳定性。
总结
Docker通过提供简单易用的容器虚拟化,极大地简化了应用的分发和部署。利用Docker可以轻松将应用运行在不同环境中。它正在成为构建持续交付和部署流程的重要基础。