第一次接触到docker,就被docker多容器同时运行便捷吸引,docker在我的概念中可以比作一台正在运行的计算机,每一个容器都可以当成是在计算机中的的软件每一个容器都是一个独立的个体,这样可以更大程度的人让使用者更加通俗易懂。
docker作为一种新兴的虚拟化技术,跟传统的虚拟机有着更大的优势,docker镜像提供了除内核外完整的运行环境,确保了每一个容器运行环境的一致性,解决了代码在其他机器上因为运行环境而导致的各种问题;更大程度的应用启动速度,节约了,测试,开发部署等时间,可以大大减少编写代码和在生产环境中运行代码之间的延迟;避免资源占用,且docker强大的兼容性适用于任何开发环境等。。。。
docker的核型概念包括三种
镜像(image)
容器(Container)
仓库(Repository)
docker镜像:一个只读模版,可以用于创建容器,一个镜像多次创建容器,也可直接拉去其他人做好的镜像对现在的镜像进行安装与更新。
Docker国内镜像仓库:
公司 / 机构 / 大学 | 镜像链接 | 备注 |
中国科学技术大学 | ||
Docker中国区官方 |
| |
网易 |
| |
阿里云 | https://<xxx>.mirror.aliyuncs.com | 需要自己去以下链接创建专属镜像仓库 |
作者:Kevin
链接:https://zhuanlan.zhihu.com/p/347643668
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Docker images查看镜像
命令 docker pull 来下载镜像
镜像删除使用 docker rmi 命令
docker容器:容器是从镜像创建的运行实例,可以单独运行也可以多个容器一起运行,docker利用容器运行应用,可以启动,删除等炒作,每个容器互相都是互不影响保证安全的
容器数据卷
将容器内的目录,挂在到linux中。容器间也可以数据共享 ,-v 挂载
docker run -it -v
主机目录
:
容器目录
images
具名挂载(随便给个名字,不以/开头) 匿名挂载(-v时只写了容器内路径)
docker volume ls
docker volume inspect name
数据同步:两容器间数据同步(同一镜像下两容器)
docker run -it --name docker02 --volumes-from docker01
docker ps 查看正在运行的容器
docker ps -a 查看没有运行的容器
docker start <容器id> 用于启动容器
docker stop <容器id> 用于关闭容器
docker restart <容器id> 用于重启容器
docker pause <容器id> 用于停止容器内所有进程
docker rm 删除一个或多个容器
docker exec -it 容器名字 bash 进入容器内部
docker仓库 :
仓库是储存镜像的,分为公开仓库和私有仓库
最大的公开仓库是docker hub 存放大量镜像供用户下载
Docker-compose 是用于定义运行多容器的docker应用程序工具,使用yml文件来进行配置,使用docker-compose up -d来启动配置中的所有容器
Docker-compose。yml文件配置参数解读:
Image:指定容器启动的镜像
Bulid:服务除了可以基于指定的镜像,还可以基于一份Dockerfile,在使用up启动执行构建任务,可以指定dockerfile所在文件位置,compose用它自动构建这个镜像,使用镜像启动容器
Command:可以覆盖容器后启动后默认执行的命令
Container——name:指定容器名字
Depends_on:解决容器依赖,启动先后问题
dns:指定dns服务器
Volumes:挂载一个目录或者一个已经存在的数据卷,数据卷是只读的,可以有效的保护主机文件系统
Docker-compose -ps 查看正在运行的服务
docker-compose logs 查看服务日志
Docker-compose down 关闭正在运行的容器