Docker常用方式简介
什么是Docker
Docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。
一、Docker三大要素
- 仓库(Registry):国内主要是阿里云仓库,存放各种所需的公共镜像。
- 镜像(Images):类似于常见软件的模板,简易版Linux环境+运行于其中的软件,从仓库拉取,存于本地。
容器(Contains): 镜像的实例,一个镜像可创建多个实例。
二、Docker常用命令
帮助命令
docker version #查看版本信息 docker info #查看docker的相关信息 client及server docker --help #帮助命令
镜像命令
docker images [options] #列出本地(server)中的所有镜像 -a 列出本地所有镜像(含中间映像层) -q 只显示镜像ID --digist 显示摘要信息 --no-trunc 显示完整信息 docker search [options] 镜像名 #在仓库中查找镜像 --no-trunc 显示完整信息 -s n 显示收藏数不小于n的镜像 --automated 只显示automated类型 docker pull 镜像名 #从仓库拉取镜像到本地 docker rmi -f 镜像名($(docker images -qa)) #强制删除本地镜像(所有)
容器命令
docker run [options] 镜像名 #创建镜像实例容器并运行 -it 以交互方式,伪终端启动 --name 别名 -d 后台运行容器并返回容器ID -P/p 随机端口映射/指定端口映射 docker ps [options] #查看所有容器 -a 当前正在运行+历史运行过 -l 显示最近创建的容器 -n 显示最近创建的n个容器 -q 只显示容器编号 --no-trunc 查看完整信息 exit #容器停止退出容器 ctrl+P+Q #容器不停止退出容器 docker start/restart/stop/kill 容器名 #启动/重启/停止/强制停止容器 docker rm -f ($(docker ps -qa)) #删除容器(删除所有) docker run -d 容器名 #以守护进程方式启动 docker logs [options] 容器名 #查看容器运行日志 -t 加入时间戳 -f 跟踪最新的日志 --tail n 显示最后n条 docker top 容器名 #查看容器内运行的进程 docker inspect 容器名 #查看容器内部运行的细节 docker cp 容器ID:路径 主机路径 #拷贝容器文件到主机 docker attach 容器名 #重新进入未停止(ctrl+P+Q)的容器 docker exec -it 容器名 相应操作 在容器外部执行内部命令 /bin/bash 进入容器同attach
三、镜像原理
1.底层为联合文件系统 UnionFS
2.镜像加载原理 bootsfs(内核,与主机共用不加载)+rootfs(软件文件系统)
3.镜像提交 docker commit -m="描述" -a="作者" 容器名 创建的目标镜像名:版本
4.镜像推送 docker push 可推送到仓库,供大家使用
5.分层镜像
四、Docker容器数据卷
卷,就是目录或文件,存在于一个或多个容器中,由docker挂载到容器中,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性。
卷的设计的目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。
两种添加方式
之间命令添加:docker run -it -v /主机目录:/容器目录 镜像名
DockerFile方式:在Dockerfile中使用Volume
指令来给镜像添加一个或多个数据卷。
五、DockerFile
编写Dockerfile脚本,docker bulid
构建自定义镜像
写在最后
文章简要介绍了Docker的要素及基本使用,以上命令足够使用,但文章没有涉及更多原理层面知识,特别是DockerFile,读者可自行搜索。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。