Docker1.0
Dockers 概述
出现原因:缓解开发与运维之间的不协调,两者之间的困难。开发时可将项目通过docker把项目的镜像(环境)给传到仓库中,需要时直接取出即可,用户不用自己重新布置环境。
Docker的思想来自于集装箱(logo如上),把不同的项目给隔离出来,每一个项目互相隔离出来,以免互相影响。从一开始的VM虚拟化技术到现在的容器虚拟化技术,从几个G到几个M的转变。
- 传统虚拟机虚拟出一条硬件,运行一个完整的OS,然后在上面运行
- 容器没有内核,也没有硬件,因此轻便了许多
- 每个容器相互隔离,都有自己的文件系统
Docker文档和仓库:
Docker名词概念
镜像:类似于模板,镜像==>run==>容器,一个镜像可以产生多个容器。
容器:独立运行一个组,用镜像创建。
仓库:存放镜像的地方,分为公有和私有仓库。
Docker原理&流程
Docker是一个CS访问模型,Docker通过Socket从客户端访问,DockerServer接受命令并且执行。
Docker命令
帮助命令:
docker version //查看docker版本
docker info //查看docker信息
docker [op] --help //帮助请求
镜像命令:
docker images [op] //查看镜像信息
docker search name [op] //搜索镜像,eg:docker search mysql --filter=stars=3000
docker pull name [tag] //下载镜像,分层下载
docker rmi -f id //选择删除镜像,id=$(docker images -aq)删除全部
容器命令:
docker run [op] images [way] //启动容器,/bin/bash
op:
--name="Name" 容器名称
-d 后台方式运行
-it 交互式运行
-P 指定容器端口
-p 随机指定端口
exit //退出容器&&停止
ctrl+P+Q //退出容器&&不停止
docker rm [-f] id //删除容器,id=$(docker ps -aq)
docker ps //显示正在运行的容器
docker ps -a //查看历史记录
docker start id //启动容器
docker restart id //重启容器
docker stop id //停止正在运行容器
docker kill id //强制停止容器
docker exec -it id [way] //进入后台容器,新的终端
docker attach //进入后台容器,执行窗口
//后台启动时,如果没有程序会自动停止
其它命令:
logs:
docker logs -ft -tail+num id //查看容器日志
-f //跟进当前时间
-t //返回时间戳
容器进程:
docker top id
元数据:
docker inspect id
copy容器内文件到本机:
docker cp 容器id:路径 主机路径